Skip to content

Runtime API Examples

This page demonstrates usage of some of the runtime APIs provided by VitePress.

The main useData() API can be used to access site, theme, and page data for the current page. It works in both .md and .vue files:

md
<script setup>
import { useData } from 'vitepress'

const { theme, page, frontmatter } = useData()
</script>

## Results

### Theme Data
<pre>{{ theme }}</pre>

### Page Data
<pre>{{ page }}</pre>

### Page Frontmatter
<pre>{{ frontmatter }}</pre>

Results

Theme Data

{
  "useTheme": true,
  "articleAnalyze": {
    "showIcon": true,
    "dateFormat": "yyyy-MM-dd",
    "showInfo": true,
    "showAuthor": true,
    "showCreateDate": true,
    "showUpdateDate": false,
    "showCategory": false,
    "showTag": false,
    "teleport": {
      "position": "after",
      "className": "teleport"
    }
  },
  "articleShare": {
    "enabled": true
  },
  "author": {
    "name": "苏木",
    "link": "https://github.com/docs-site"
  },
  "backTop": {
    "enabled": true,
    "content": "progress"
  },
  "breadcrumb": {
    "enabled": true,
    "showCurrentName": false,
    "separator": "/",
    "homeLabel": "首页"
  },
  "clickEffect": {
    "enabled": true
  },
  "codeBlock": {
    "enabled": true,
    "collapseHeight": 500,
    "overlay": false,
    "overlayHeight": 400,
    "langTextTransform": "lowercase"
  },
  "comment": false,
  "docAnalysis": {
    "enabled": true,
    "title": "${icon}站点信息",
    "wordCount": false,
    "readingTime": false,
    "statistics": {
      "siteView": true,
      "pageView": true,
      "permalink": true
    }
  },
  "docFooterCopyright": {
    "enabled": true,
    "author": "苏木",
    "authorLink": "https://docs-site.github.io/vitepress-theme-mist/",
    "pathMapping": {},
    "copyrightText": "本博客所有文章除特别声明外,均采用",
    "licenseName": "BY-NC-SA 4.0",
    "licenseLink": "https://creativecommons.org/licenses/by-nc-sa/4.0/"
  },
  "footerGroup": [],
  "footerInfo": {
    "topMessage": [
      "莫道桑榆晚, 为霞尚满天"
    ],
    "bottomMessage": [
      ""
    ],
    "theme": {
      "show": true,
      "name": "mist@1.2.5",
      "link": "https://github.com/docs-site/vitepress-theme-mist"
    },
    "copyright": {
      "show": true,
      "createYear": 2025,
      "suffix": "苏木"
    }
  },
  "markdown": {},
  "sidebarTrigger": true,
  "social": [
    {
      "icon": "",
      "name": "",
      "link": ""
    },
    {
      "icon": "",
      "name": "",
      "link": ""
    }
  ],
  "themeName": "vitepress-theme-mist",
  "themeEnhance": {
    "enabled": true,
    "position": "top",
    "layoutSwitch": {
      "disabled": false,
      "defaultMode": "fullWidth",
      "disableHelp": false,
      "disableAnimation": false,
      "defaultDocMaxWidth": 90,
      "disableDocMaxWidthHelp": false,
      "defaultPageMaxWidth": 95,
      "disablePageMaxWidthHelp": false
    },
    "spotlight": {
      "disabled": false,
      "defaultStyle": "aside",
      "defaultValue": true
    },
    "themeColor": {}
  },
  "toComment": {
    "enabled": true
  },
  "vitePlugins": {
    "enabled": true,
    "docAnalysis": true,
    "fileContentLoaderIgnore": [],
    "demoOption": {
      "str": "mist"
    },
    "navSidebarOption": {
      "path": "sdoc",
      "debugInfo": false,
      "navOption": {
        "maxLevel": 2,
        "debugPrint": false,
        "saveToFile": false
      },
      "sideBarOption": {
        "type": "object",
        "ignoreList": [
          "index.md",
          "README.md"
        ],
        "initItems": false,
        "collapsed": true,
        "debugPrint": false,
        "saveToFile": false
      }
    }
  },
  "windowTransition": true,
  "nav": [
    {
      "text": "开发工具",
      "items": [
        {
          "text": "keil",
          "link": "/sdoc/dev-tool/keil/126b08a8b73a3181c0cdd833.md"
        },
        {
          "text": "STM32Cube",
          "link": "/sdoc/dev-tool/stm32cube/126b08aa588123a43b261847.md"
        },
        {
          "text": "下载与调试",
          "link": "/sdoc/dev-tool/burn-and-debug/126b08ab150e18611433564e.md"
        }
      ]
    },
    {
      "text": "基础篇",
      "items": [
        {
          "text": "概述",
          "link": "/sdoc/basic/overview/126b08ba0e6d394d4eb563f9.md"
        },
        {
          "text": "STM32基础",
          "link": "/sdoc/basic/stm32basic/126b08e5fe7229fef4ddea37.md"
        },
        {
          "text": "STM32的启动",
          "link": "/sdoc/basic/stm32setup/126b08e788d3105084b556cd.md"
        },
        {
          "text": "STM32的中断",
          "link": "/sdoc/basic/stm32interrupt/126b08f5722f25a054f0a4aa.md"
        },
        {
          "text": "STM32时钟",
          "link": "/sdoc/basic/stm32clock/126b08f5d87c1eab6c3871dc.md"
        },
        {
          "text": "STM32内部FLASH",
          "link": "/sdoc/basic/stm32flash/126b093451ee0b11abb28aa5.md"
        },
        {
          "text": "STM32的内存",
          "link": "/sdoc/basic/stm32memory/126b094142e21f978c1c589e.md"
        },
        {
          "text": "STM32电源管理",
          "link": "/sdoc/basic/stm32pwr/126b09513f0a17a9a28ea1f0.md"
        }
      ]
    },
    {
      "text": "基本外设篇",
      "items": [
        {
          "text": "GPIO",
          "link": "/sdoc/peripheral/gpio/126b08e802bd2a57f9711bf1.md"
        },
        {
          "text": "UART",
          "link": "/sdoc/peripheral/uart/126b08f60e8936153c897e51.md"
        },
        {
          "text": "定时器",
          "link": "/sdoc/peripheral/timer/126b08f6a16a27128730debb.md"
        },
        {
          "text": "看门狗",
          "link": "/sdoc/peripheral/watchdog/126b09043af80c9abdc4e3ef.md"
        },
        {
          "text": "FSMC",
          "link": "/sdoc/peripheral/fsmc/126b09248c2122169ae2fda2.md"
        },
        {
          "text": "I2C",
          "link": "/sdoc/peripheral/i2c/126b09344bc72d87b3b3eff9.md"
        },
        {
          "text": "SPI",
          "link": "/sdoc/peripheral/spi/126b0950f46d2b67951e2c74.md"
        },
        {
          "text": "DMA",
          "link": "/sdoc/peripheral/dma/126b0950fb76332c67477449.md"
        },
        {
          "text": "SDIO",
          "link": "/sdoc/peripheral/sdio/126b0950fdc523d3bcab509d.md"
        },
        {
          "text": "RTC时钟",
          "link": "/sdoc/peripheral/rtc/126b09511e9e39a6b6fcf250.md"
        },
        {
          "text": "USB",
          "link": "/sdoc/peripheral/usb/126b095167923a1447b3ed2c.md"
        }
      ]
    },
    {
      "text": "进阶篇",
      "items": [
        {
          "text": "文件系统",
          "link": "/sdoc/advanced-chapter/file-system/126b095103f1237157cc07c6.md"
        },
        {
          "text": "ESP8266",
          "link": "/sdoc/advanced-chapter/esp8266/126b0951501d17f37e2b0091.md"
        },
        {
          "text": "OV7725",
          "link": "/sdoc/advanced-chapter/ov7725/126b09516acd106d46ca7dbf.md"
        },
        {
          "text": "显示屏",
          "link": "/sdoc/advanced-chapter/display/126b09516d1d204fc8501804.md"
        },
        {
          "text": "FreeRTOS",
          "link": "/docs/126b096ee490286163a5b271.md"
        }
      ]
    },
    {
      "text": "通信专题",
      "items": [
        {
          "text": "I2C协议",
          "link": "/sdoc/communication/i2c/126b09043eec0234d430a608.md"
        },
        {
          "text": "串口",
          "link": "/sdoc/communication/serial-port/126b09044209398a673e2151.md"
        },
        {
          "text": "SPI",
          "link": "/sdoc/communication/spi/126b0950dce32a071f087087.md"
        },
        {
          "text": "CAN",
          "link": "/sdoc/communication/can/126b0950f33c30cca3fe3d80.md"
        }
      ]
    },
    {
      "text": "功能页",
      "items": [
        {
          "text": "归档页",
          "link": "/archives"
        },
        {
          "text": "导航页",
          "link": "/Navigation"
        }
      ]
    }
  ],
  "logo": "/favicon.svg",
  "docFooter": {
    "prev": "上一篇",
    "next": "下一篇"
  },
  "outline": {
    "label": "页面导航",
    "level": [
      2,
      6
    ]
  },
  "socialLinks": [
    {
      "icon": "github",
      "link": "https://github.com/docs-site/scm-docs.git"
    }
  ],
  "docAnalysisInfo": {
    "fileList": [
      {
        "filePath": "/home/runner/work/scm-docs/scm-docs/src/Examples/api-examples.md",
        "relativePath": "Examples/api-examples.md"
      },
      {
        "filePath": "/home/runner/work/scm-docs/scm-docs/src/Examples/index.md",
        "relativePath": "Examples/index.md"
      },
      {
        "filePath": "/home/runner/work/scm-docs/scm-docs/src/Examples/markdown-examples.md",
        "relativePath": "Examples/markdown-examples.md"
      },
      {
        "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/01-开发工具/01-keil/LV001-keil简介.md",
        "relativePath": "sdoc/01-开发工具/01-keil/LV001-keil简介.md"
      },
      {
        "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/01-开发工具/01-keil/LV002-工程创建.md",
        "relativePath": "sdoc/01-开发工具/01-keil/LV002-工程创建.md"
      },
      {
        "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/01-开发工具/01-keil/LV010-程序与编译.md",
        "relativePath": "sdoc/01-开发工具/01-keil/LV010-程序与编译.md"
      },
      {
        "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/01-开发工具/01-keil/LV015-MDK工程文件简介.md",
        "relativePath": "sdoc/01-开发工具/01-keil/LV015-MDK工程文件简介.md"
      },
      {
        "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/01-开发工具/01-keil/LV016-Output目录文件.md",
        "relativePath": "sdoc/01-开发工具/01-keil/LV016-Output目录文件.md"
      },
      {
        "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/01-开发工具/01-keil/LV017-Listing目录文件.md",
        "relativePath": "sdoc/01-开发工具/01-keil/LV017-Listing目录文件.md"
      },
      {
        "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/01-开发工具/01-keil/LV020-SCT分散加载文件.md",
        "relativePath": "sdoc/01-开发工具/01-keil/LV020-SCT分散加载文件.md"
      },
      {
        "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/01-开发工具/01-keil/LV025-SCT文件应用.md",
        "relativePath": "sdoc/01-开发工具/01-keil/LV025-SCT文件应用.md"
      },
      {
        "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/01-开发工具/01-keil/LV040-在线调试.md",
        "relativePath": "sdoc/01-开发工具/01-keil/LV040-在线调试.md"
      },
      {
        "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/01-开发工具/01-keil/index.md",
        "relativePath": "sdoc/01-开发工具/01-keil/index.md"
      },
      {
        "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/01-开发工具/02-STM32Cube/LV001-STM32CubeMX简介.md",
        "relativePath": "sdoc/01-开发工具/02-STM32Cube/LV001-STM32CubeMX简介.md"
      },
      {
        "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/01-开发工具/02-STM32Cube/LV002-STM32CubeMX工程创建.md",
        "relativePath": "sdoc/01-开发工具/02-STM32Cube/LV002-STM32CubeMX工程创建.md"
      },
      {
        "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/01-开发工具/02-STM32Cube/LV010-Makefile管理工程.md",
        "relativePath": "sdoc/01-开发工具/02-STM32Cube/LV010-Makefile管理工程.md"
      },
      {
        "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/01-开发工具/02-STM32Cube/LV012-Makefile文件分析.md",
        "relativePath": "sdoc/01-开发工具/02-STM32Cube/LV012-Makefile文件分析.md"
      },
      {
        "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/01-开发工具/02-STM32Cube/LV015-LD链接脚本.md",
        "relativePath": "sdoc/01-开发工具/02-STM32Cube/LV015-LD链接脚本.md"
      },
      {
        "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/01-开发工具/02-STM32Cube/LV030-STM32CubeIDE.md",
        "relativePath": "sdoc/01-开发工具/02-STM32Cube/LV030-STM32CubeIDE.md"
      },
      {
        "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/01-开发工具/02-STM32Cube/index.md",
        "relativePath": "sdoc/01-开发工具/02-STM32Cube/index.md"
      },
      {
        "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/01-开发工具/10-下载与调试/LV001-下载与调试概述.md",
        "relativePath": "sdoc/01-开发工具/10-下载与调试/LV001-下载与调试概述.md"
      },
      {
        "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/01-开发工具/10-下载与调试/LV002-JLink怎么使用.md",
        "relativePath": "sdoc/01-开发工具/10-下载与调试/LV002-JLink怎么使用.md"
      },
      {
        "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/01-开发工具/10-下载与调试/LV010-JFlash简介.md",
        "relativePath": "sdoc/01-开发工具/10-下载与调试/LV010-JFlash简介.md"
      },
      {
        "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/01-开发工具/10-下载与调试/LV015-STLink怎么使用.md",
        "relativePath": "sdoc/01-开发工具/10-下载与调试/LV015-STLink怎么使用.md"
      },
      {
        "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/01-开发工具/10-下载与调试/LV020-ST-LINK-Utility简介.md",
        "relativePath": "sdoc/01-开发工具/10-下载与调试/LV020-ST-LINK-Utility简介.md"
      },
      {
        "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/01-开发工具/10-下载与调试/LV030-串口下载.md",
        "relativePath": "sdoc/01-开发工具/10-下载与调试/LV030-串口下载.md"
      },
      {
        "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/01-开发工具/10-下载与调试/index.md",
        "relativePath": "sdoc/01-开发工具/10-下载与调试/index.md"
      },
      {
        "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/01-开发工具/index.md",
        "relativePath": "sdoc/01-开发工具/index.md"
      },
      {
        "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/10-基础篇/01-概述/LV001-ARM体系结构.md",
        "relativePath": "sdoc/10-基础篇/01-概述/LV001-ARM体系结构.md"
      },
      {
        "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/10-基础篇/01-概述/LV010-常见存储器.md",
        "relativePath": "sdoc/10-基础篇/01-概述/LV010-常见存储器.md"
      },
      {
        "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/10-基础篇/01-概述/LV020-CortexM0简介.md",
        "relativePath": "sdoc/10-基础篇/01-概述/LV020-CortexM0简介.md"
      },
      {
        "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/10-基础篇/01-概述/LV022-CortexM0存储器映射.md",
        "relativePath": "sdoc/10-基础篇/01-概述/LV022-CortexM0存储器映射.md"
      },
      {
        "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/10-基础篇/01-概述/LV030-CortexM3简介.md",
        "relativePath": "sdoc/10-基础篇/01-概述/LV030-CortexM3简介.md"
      },
      {
        "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/10-基础篇/01-概述/LV035-CortexM3存储器系统.md",
        "relativePath": "sdoc/10-基础篇/01-概述/LV035-CortexM3存储器系统.md"
      },
      {
        "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/10-基础篇/01-概述/LV040-CortexM3异常.md",
        "relativePath": "sdoc/10-基础篇/01-概述/LV040-CortexM3异常.md"
      },
      {
        "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/10-基础篇/01-概述/LV045-CortexM3的NVIC中断控制.md",
        "relativePath": "sdoc/10-基础篇/01-概述/LV045-CortexM3的NVIC中断控制.md"
      },
      {
        "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/10-基础篇/01-概述/index.md",
        "relativePath": "sdoc/10-基础篇/01-概述/index.md"
      },
      {
        "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/10-基础篇/10-STM32基础/LV001-STM32概述.md",
        "relativePath": "sdoc/10-基础篇/10-STM32基础/LV001-STM32概述.md"
      },
      {
        "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/10-基础篇/10-STM32基础/LV010-嵌入式C语言.md",
        "relativePath": "sdoc/10-基础篇/10-STM32基础/LV010-嵌入式C语言.md"
      },
      {
        "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/10-基础篇/10-STM32基础/LV020-STM32怎么开发.md",
        "relativePath": "sdoc/10-基础篇/10-STM32基础/LV020-STM32怎么开发.md"
      },
      {
        "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/10-基础篇/10-STM32基础/LV021-认识HAL库.md",
        "relativePath": "sdoc/10-基础篇/10-STM32基础/LV021-认识HAL库.md"
      },
      {
        "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/10-基础篇/10-STM32基础/LV030-STM32程序下载.md",
        "relativePath": "sdoc/10-基础篇/10-STM32基础/LV030-STM32程序下载.md"
      },
      {
        "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/10-基础篇/10-STM32基础/LV040-STM32系统架构.md",
        "relativePath": "sdoc/10-基础篇/10-STM32基础/LV040-STM32系统架构.md"
      },
      {
        "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/10-基础篇/10-STM32基础/LV045-STM32存储器系统.md",
        "relativePath": "sdoc/10-基础篇/10-STM32基础/LV045-STM32存储器系统.md"
      },
      {
        "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/10-基础篇/10-STM32基础/LV050-STM32地址重映射.md",
        "relativePath": "sdoc/10-基础篇/10-STM32基础/LV050-STM32地址重映射.md"
      },
      {
        "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/10-基础篇/10-STM32基础/index.md",
        "relativePath": "sdoc/10-基础篇/10-STM32基础/index.md"
      },
      {
        "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/10-基础篇/20-STM32的启动/LV001-启动文件.md",
        "relativePath": "sdoc/10-基础篇/20-STM32的启动/LV001-启动文件.md"
      },
      {
        "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/10-基础篇/20-STM32的启动/LV005-启动过程.md",
        "relativePath": "sdoc/10-基础篇/20-STM32的启动/LV005-启动过程.md"
      },
      {
        "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/10-基础篇/20-STM32的启动/LV010-在内部SRAM调试.md",
        "relativePath": "sdoc/10-基础篇/20-STM32的启动/LV010-在内部SRAM调试.md"
      },
      {
        "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/10-基础篇/20-STM32的启动/index.md",
        "relativePath": "sdoc/10-基础篇/20-STM32的启动/index.md"
      },
      {
        "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/10-基础篇/30-STM32的中断/LV001-STM32中断简介.md",
        "relativePath": "sdoc/10-基础篇/30-STM32的中断/LV001-STM32中断简介.md"
      },
      {
        "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/10-基础篇/30-STM32的中断/index.md",
        "relativePath": "sdoc/10-基础篇/30-STM32的中断/index.md"
      },
      {
        "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/10-基础篇/40-STM32时钟/LV001-STM32F1时钟系统.md",
        "relativePath": "sdoc/10-基础篇/40-STM32时钟/LV001-STM32F1时钟系统.md"
      },
      {
        "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/10-基础篇/40-STM32时钟/LV010-STM32F1的SYSCLK.md",
        "relativePath": "sdoc/10-基础篇/40-STM32时钟/LV010-STM32F1的SYSCLK.md"
      },
      {
        "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/10-基础篇/40-STM32时钟/index.md",
        "relativePath": "sdoc/10-基础篇/40-STM32时钟/index.md"
      },
      {
        "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/10-基础篇/50-STM32内部FLASH/LV001-内部FLASH简介.md",
        "relativePath": "sdoc/10-基础篇/50-STM32内部FLASH/LV001-内部FLASH简介.md"
      },
      {
        "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/10-基础篇/50-STM32内部FLASH/LV010-FLASH操作流程.md",
        "relativePath": "sdoc/10-基础篇/50-STM32内部FLASH/LV010-FLASH操作流程.md"
      },
      {
        "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/10-基础篇/50-STM32内部FLASH/LV020-IAP编程简介.md",
        "relativePath": "sdoc/10-基础篇/50-STM32内部FLASH/LV020-IAP编程简介.md"
      },
      {
        "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/10-基础篇/50-STM32内部FLASH/LV025-IAP编程实现.md",
        "relativePath": "sdoc/10-基础篇/50-STM32内部FLASH/LV025-IAP编程实现.md"
      },
      {
        "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/10-基础篇/50-STM32内部FLASH/index.md",
        "relativePath": "sdoc/10-基础篇/50-STM32内部FLASH/index.md"
      },
      {
        "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/10-基础篇/60-STM32的内存/LV001-STM32内存简介.md",
        "relativePath": "sdoc/10-基础篇/60-STM32的内存/LV001-STM32内存简介.md"
      },
      {
        "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/10-基础篇/60-STM32的内存/LV010-内存管理.md",
        "relativePath": "sdoc/10-基础篇/60-STM32的内存/LV010-内存管理.md"
      },
      {
        "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/10-基础篇/60-STM32的内存/index.md",
        "relativePath": "sdoc/10-基础篇/60-STM32的内存/index.md"
      },
      {
        "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/10-基础篇/70-STM32电源管理/LV001-电源管理简介.md",
        "relativePath": "sdoc/10-基础篇/70-STM32电源管理/LV001-电源管理简介.md"
      },
      {
        "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/10-基础篇/70-STM32电源管理/LV010-三种模式实现.md",
        "relativePath": "sdoc/10-基础篇/70-STM32电源管理/LV010-三种模式实现.md"
      },
      {
        "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/10-基础篇/70-STM32电源管理/index.md",
        "relativePath": "sdoc/10-基础篇/70-STM32电源管理/index.md"
      },
      {
        "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/10-基础篇/index.md",
        "relativePath": "sdoc/10-基础篇/index.md"
      },
      {
        "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/01-GPIO/LV001-STM32的GPIO简介.md",
        "relativePath": "sdoc/20-基本外设篇/01-GPIO/LV001-STM32的GPIO简介.md"
      },
      {
        "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/01-GPIO/LV010-输入输出模式详解.md",
        "relativePath": "sdoc/20-基本外设篇/01-GPIO/LV010-输入输出模式详解.md"
      },
      {
        "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/01-GPIO/LV020-GPIO控制LED.md",
        "relativePath": "sdoc/20-基本外设篇/01-GPIO/LV020-GPIO控制LED.md"
      },
      {
        "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/01-GPIO/LV030-按键检测.md",
        "relativePath": "sdoc/20-基本外设篇/01-GPIO/LV030-按键检测.md"
      },
      {
        "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/01-GPIO/LV040-外部中断.md",
        "relativePath": "sdoc/20-基本外设篇/01-GPIO/LV040-外部中断.md"
      },
      {
        "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/01-GPIO/LV045-外部中断实例.md",
        "relativePath": "sdoc/20-基本外设篇/01-GPIO/LV045-外部中断实例.md"
      },
      {
        "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/01-GPIO/index.md",
        "relativePath": "sdoc/20-基本外设篇/01-GPIO/index.md"
      },
      {
        "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/10-UART/LV001-串口通信简介.md",
        "relativePath": "sdoc/20-基本外设篇/10-UART/LV001-串口通信简介.md"
      },
      {
        "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/10-UART/LV010-STM32的串口.md",
        "relativePath": "sdoc/20-基本外设篇/10-UART/LV010-STM32的串口.md"
      },
      {
        "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/10-UART/LV020-串口收发实例.md",
        "relativePath": "sdoc/20-基本外设篇/10-UART/LV020-串口收发实例.md"
      },
      {
        "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/10-UART/index.md",
        "relativePath": "sdoc/20-基本外设篇/10-UART/index.md"
      },
      {
        "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/15-定时器/LV001-基本定时器简介.md",
        "relativePath": "sdoc/20-基本外设篇/15-定时器/LV001-基本定时器简介.md"
      },
      {
        "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/15-定时器/LV030-通用定时器简介.md",
        "relativePath": "sdoc/20-基本外设篇/15-定时器/LV030-通用定时器简介.md"
      },
      {
        "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/15-定时器/LV035-通用定时器的中断.md",
        "relativePath": "sdoc/20-基本外设篇/15-定时器/LV035-通用定时器的中断.md"
      },
      {
        "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/15-定时器/LV040-通用定时器PWM输出.md",
        "relativePath": "sdoc/20-基本外设篇/15-定时器/LV040-通用定时器PWM输出.md"
      },
      {
        "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/15-定时器/LV045-通用定时器输入捕获.md",
        "relativePath": "sdoc/20-基本外设篇/15-定时器/LV045-通用定时器输入捕获.md"
      },
      {
        "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/15-定时器/LV050-通用定时器脉冲计数.md",
        "relativePath": "sdoc/20-基本外设篇/15-定时器/LV050-通用定时器脉冲计数.md"
      },
      {
        "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/15-定时器/LV070-高级定时器简介.md",
        "relativePath": "sdoc/20-基本外设篇/15-定时器/LV070-高级定时器简介.md"
      },
      {
        "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/15-定时器/LV075-高级定时器PWM输出.md",
        "relativePath": "sdoc/20-基本外设篇/15-定时器/LV075-高级定时器PWM输出.md"
      },
      {
        "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/15-定时器/LV080-高级定时器输出比较模式.md",
        "relativePath": "sdoc/20-基本外设篇/15-定时器/LV080-高级定时器输出比较模式.md"
      },
      {
        "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/15-定时器/LV085-高级定时器互补输出.md",
        "relativePath": "sdoc/20-基本外设篇/15-定时器/LV085-高级定时器互补输出.md"
      },
      {
        "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/15-定时器/LV090-高级定时器PWM输入.md",
        "relativePath": "sdoc/20-基本外设篇/15-定时器/LV090-高级定时器PWM输入.md"
      },
      {
        "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/15-定时器/LV100-SysTick定时器简介.md",
        "relativePath": "sdoc/20-基本外设篇/15-定时器/LV100-SysTick定时器简介.md"
      },
      {
        "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/15-定时器/LV105-自定义延时函数.md",
        "relativePath": "sdoc/20-基本外设篇/15-定时器/LV105-自定义延时函数.md"
      },
      {
        "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/15-定时器/index.md",
        "relativePath": "sdoc/20-基本外设篇/15-定时器/index.md"
      },
      {
        "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/20-看门狗/LV001-看门狗简介.md",
        "relativePath": "sdoc/20-基本外设篇/20-看门狗/LV001-看门狗简介.md"
      },
      {
        "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/20-看门狗/LV010-看门狗使用实例.md",
        "relativePath": "sdoc/20-基本外设篇/20-看门狗/LV010-看门狗使用实例.md"
      },
      {
        "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/20-看门狗/index.md",
        "relativePath": "sdoc/20-基本外设篇/20-看门狗/index.md"
      },
      {
        "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/25-FSMC/01-FSMC基础/LV001-FSMC简介.md",
        "relativePath": "sdoc/20-基本外设篇/25-FSMC/01-FSMC基础/LV001-FSMC简介.md"
      },
      {
        "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/25-FSMC/01-FSMC基础/LV005-存储器映射与控制器.md",
        "relativePath": "sdoc/20-基本外设篇/25-FSMC/01-FSMC基础/LV005-存储器映射与控制器.md"
      },
      {
        "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/25-FSMC/01-FSMC基础/LV010-相关HAL库函数.md",
        "relativePath": "sdoc/20-基本外设篇/25-FSMC/01-FSMC基础/LV010-相关HAL库函数.md"
      },
      {
        "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/25-FSMC/01-FSMC基础/index.md",
        "relativePath": "sdoc/20-基本外设篇/25-FSMC/01-FSMC基础/index.md"
      },
      {
        "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/25-FSMC/05-外部SRAM/LV001-概述.md",
        "relativePath": "sdoc/20-基本外设篇/25-FSMC/05-外部SRAM/LV001-概述.md"
      },
      {
        "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/25-FSMC/05-外部SRAM/LV002-XM8A51216简介.md",
        "relativePath": "sdoc/20-基本外设篇/25-FSMC/05-外部SRAM/LV002-XM8A51216简介.md"
      },
      {
        "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/25-FSMC/05-外部SRAM/LV005-IS62WV51216简介.md",
        "relativePath": "sdoc/20-基本外设篇/25-FSMC/05-外部SRAM/LV005-IS62WV51216简介.md"
      },
      {
        "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/25-FSMC/05-外部SRAM/LV015-外部SRAM读写实例.md",
        "relativePath": "sdoc/20-基本外设篇/25-FSMC/05-外部SRAM/LV015-外部SRAM读写实例.md"
      },
      {
        "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/25-FSMC/05-外部SRAM/index.md",
        "relativePath": "sdoc/20-基本外设篇/25-FSMC/05-外部SRAM/index.md"
      },
      {
        "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/25-FSMC/index.md",
        "relativePath": "sdoc/20-基本外设篇/25-FSMC/index.md"
      },
      {
        "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/30-I2C/LV001-STM32的I2C.md",
        "relativePath": "sdoc/20-基本外设篇/30-I2C/LV001-STM32的I2C.md"
      },
      {
        "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/30-I2C/LV010-AT24C02简介.md",
        "relativePath": "sdoc/20-基本外设篇/30-I2C/LV010-AT24C02简介.md"
      },
      {
        "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/30-I2C/LV015-AT24C02使用实例.md",
        "relativePath": "sdoc/20-基本外设篇/30-I2C/LV015-AT24C02使用实例.md"
      },
      {
        "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/30-I2C/index.md",
        "relativePath": "sdoc/20-基本外设篇/30-I2C/index.md"
      },
      {
        "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/35-SPI/LV001-STM32的SPI.md",
        "relativePath": "sdoc/20-基本外设篇/35-SPI/LV001-STM32的SPI.md"
      },
      {
        "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/35-SPI/LV010-W25QXXX简介.md",
        "relativePath": "sdoc/20-基本外设篇/35-SPI/LV010-W25QXXX简介.md"
      },
      {
        "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/35-SPI/LV015-SPI读写W25QXXX实例.md",
        "relativePath": "sdoc/20-基本外设篇/35-SPI/LV015-SPI读写W25QXXX实例.md"
      },
      {
        "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/35-SPI/index.md",
        "relativePath": "sdoc/20-基本外设篇/35-SPI/index.md"
      },
      {
        "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/40-DMA/LV001-DMA简介.md",
        "relativePath": "sdoc/20-基本外设篇/40-DMA/LV001-DMA简介.md"
      },
      {
        "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/40-DMA/LV010-DMA使用实例.md",
        "relativePath": "sdoc/20-基本外设篇/40-DMA/LV010-DMA使用实例.md"
      },
      {
        "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/40-DMA/index.md",
        "relativePath": "sdoc/20-基本外设篇/40-DMA/index.md"
      },
      {
        "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/50-SDIO/LV001-SD卡简介.md",
        "relativePath": "sdoc/20-基本外设篇/50-SDIO/LV001-SD卡简介.md"
      },
      {
        "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/50-SDIO/LV015-SD卡的操作.md",
        "relativePath": "sdoc/20-基本外设篇/50-SDIO/LV015-SD卡的操作.md"
      },
      {
        "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/50-SDIO/LV020-STM32的SDIO.md",
        "relativePath": "sdoc/20-基本外设篇/50-SDIO/LV020-STM32的SDIO.md"
      },
      {
        "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/50-SDIO/LV025-读写SD卡实例.md",
        "relativePath": "sdoc/20-基本外设篇/50-SDIO/LV025-读写SD卡实例.md"
      },
      {
        "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/50-SDIO/index.md",
        "relativePath": "sdoc/20-基本外设篇/50-SDIO/index.md"
      },
      {
        "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/55-RTC时钟/LV001-RTC简介.md",
        "relativePath": "sdoc/20-基本外设篇/55-RTC时钟/LV001-RTC简介.md"
      },
      {
        "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/55-RTC时钟/index.md",
        "relativePath": "sdoc/20-基本外设篇/55-RTC时钟/index.md"
      },
      {
        "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/60-USB/LV001-USB简介.md",
        "relativePath": "sdoc/20-基本外设篇/60-USB/LV001-USB简介.md"
      },
      {
        "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/60-USB/LV010-USB读卡器实例.md",
        "relativePath": "sdoc/20-基本外设篇/60-USB/LV010-USB读卡器实例.md"
      },
      {
        "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/60-USB/index.md",
        "relativePath": "sdoc/20-基本外设篇/60-USB/index.md"
      },
      {
        "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/index.md",
        "relativePath": "sdoc/20-基本外设篇/index.md"
      },
      {
        "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/30-进阶篇/01-文件系统/LV001-文件系统简介.md",
        "relativePath": "sdoc/30-进阶篇/01-文件系统/LV001-文件系统简介.md"
      },
      {
        "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/30-进阶篇/01-文件系统/LV010-FATFS简介.md",
        "relativePath": "sdoc/30-进阶篇/01-文件系统/LV010-FATFS简介.md"
      },
      {
        "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/30-进阶篇/01-文件系统/LV015-基于SPIFLASH移植FATFS.md",
        "relativePath": "sdoc/30-进阶篇/01-文件系统/LV015-基于SPIFLASH移植FATFS.md"
      },
      {
        "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/30-进阶篇/01-文件系统/LV020-基于SD卡移植FATFS.md",
        "relativePath": "sdoc/30-进阶篇/01-文件系统/LV020-基于SD卡移植FATFS.md"
      },
      {
        "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/30-进阶篇/01-文件系统/LV025-FATFS中自定义的一些函数.md",
        "relativePath": "sdoc/30-进阶篇/01-文件系统/LV025-FATFS中自定义的一些函数.md"
      },
      {
        "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/30-进阶篇/01-文件系统/index.md",
        "relativePath": "sdoc/30-进阶篇/01-文件系统/index.md"
      },
      {
        "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/30-进阶篇/02-ESP8266/LV001-ESP8266模块简介.md",
        "relativePath": "sdoc/30-进阶篇/02-ESP8266/LV001-ESP8266模块简介.md"
      },
      {
        "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/30-进阶篇/02-ESP8266/LV010-AT指令.md",
        "relativePath": "sdoc/30-进阶篇/02-ESP8266/LV010-AT指令.md"
      },
      {
        "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/30-进阶篇/02-ESP8266/LV015-ESP8266固件烧录.md",
        "relativePath": "sdoc/30-进阶篇/02-ESP8266/LV015-ESP8266固件烧录.md"
      },
      {
        "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/30-进阶篇/02-ESP8266/LV020-ATK-MW8266模块使用实例.md",
        "relativePath": "sdoc/30-进阶篇/02-ESP8266/LV020-ATK-MW8266模块使用实例.md"
      },
      {
        "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/30-进阶篇/02-ESP8266/index.md",
        "relativePath": "sdoc/30-进阶篇/02-ESP8266/index.md"
      },
      {
        "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/30-进阶篇/03-OV7725/LV001-ATK-MC6625F模块简介.md",
        "relativePath": "sdoc/30-进阶篇/03-OV7725/LV001-ATK-MC6625F模块简介.md"
      },
      {
        "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/30-进阶篇/03-OV7725/LV010-SCCB协议简介.md",
        "relativePath": "sdoc/30-进阶篇/03-OV7725/LV010-SCCB协议简介.md"
      },
      {
        "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/30-进阶篇/03-OV7725/LV020-OV7725简介.md",
        "relativePath": "sdoc/30-进阶篇/03-OV7725/LV020-OV7725简介.md"
      },
      {
        "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/30-进阶篇/03-OV7725/index.md",
        "relativePath": "sdoc/30-进阶篇/03-OV7725/index.md"
      },
      {
        "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/30-进阶篇/04-显示屏/01-OLED/LV001-OLED简介.md",
        "relativePath": "sdoc/30-进阶篇/04-显示屏/01-OLED/LV001-OLED简介.md"
      },
      {
        "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/30-进阶篇/04-显示屏/01-OLED/LV010-8080时序驱动OLED.md",
        "relativePath": "sdoc/30-进阶篇/04-显示屏/01-OLED/LV010-8080时序驱动OLED.md"
      },
      {
        "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/30-进阶篇/04-显示屏/01-OLED/index.md",
        "relativePath": "sdoc/30-进阶篇/04-显示屏/01-OLED/index.md"
      },
      {
        "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/30-进阶篇/04-显示屏/02-LCD/LV001-LCD简介.md",
        "relativePath": "sdoc/30-进阶篇/04-显示屏/02-LCD/LV001-LCD简介.md"
      },
      {
        "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/30-进阶篇/04-显示屏/02-LCD/LV010-液晶控制原理.md",
        "relativePath": "sdoc/30-进阶篇/04-显示屏/02-LCD/LV010-液晶控制原理.md"
      },
      {
        "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/30-进阶篇/04-显示屏/02-LCD/LV015-ATK-MD0280模块.md",
        "relativePath": "sdoc/30-进阶篇/04-显示屏/02-LCD/LV015-ATK-MD0280模块.md"
      },
      {
        "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/30-进阶篇/04-显示屏/02-LCD/LV016-IL9341简介.md",
        "relativePath": "sdoc/30-进阶篇/04-显示屏/02-LCD/LV016-IL9341简介.md"
      },
      {
        "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/30-进阶篇/04-显示屏/02-LCD/LV020-FSMC模拟8080时序.md",
        "relativePath": "sdoc/30-进阶篇/04-显示屏/02-LCD/LV020-FSMC模拟8080时序.md"
      },
      {
        "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/30-进阶篇/04-显示屏/02-LCD/LV025-LCD显示实例.md",
        "relativePath": "sdoc/30-进阶篇/04-显示屏/02-LCD/LV025-LCD显示实例.md"
      },
      {
        "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/30-进阶篇/04-显示屏/02-LCD/LV030-字符编码简介.md",
        "relativePath": "sdoc/30-进阶篇/04-显示屏/02-LCD/LV030-字符编码简介.md"
      },
      {
        "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/30-进阶篇/04-显示屏/02-LCD/LV035-中英文的显示.md",
        "relativePath": "sdoc/30-进阶篇/04-显示屏/02-LCD/LV035-中英文的显示.md"
      },
      {
        "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/30-进阶篇/04-显示屏/02-LCD/LV040-实现任意大小字模.md",
        "relativePath": "sdoc/30-进阶篇/04-显示屏/02-LCD/LV040-实现任意大小字模.md"
      },
      {
        "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/30-进阶篇/04-显示屏/02-LCD/index.md",
        "relativePath": "sdoc/30-进阶篇/04-显示屏/02-LCD/index.md"
      },
      {
        "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/30-进阶篇/04-显示屏/index.md",
        "relativePath": "sdoc/30-进阶篇/04-显示屏/index.md"
      },
      {
        "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/30-进阶篇/90-FreeRTOS/01-FreeRTOS简介/LV001-FreeRTOS简介.md",
        "relativePath": "sdoc/30-进阶篇/90-FreeRTOS/01-FreeRTOS简介/LV001-FreeRTOS简介.md"
      },
      {
        "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/30-进阶篇/90-FreeRTOS/01-FreeRTOS简介/index.md",
        "relativePath": "sdoc/30-进阶篇/90-FreeRTOS/01-FreeRTOS简介/index.md"
      },
      {
        "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/30-进阶篇/90-FreeRTOS/index.md",
        "relativePath": "sdoc/30-进阶篇/90-FreeRTOS/index.md"
      },
      {
        "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/30-进阶篇/index.md",
        "relativePath": "sdoc/30-进阶篇/index.md"
      },
      {
        "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/60-通信专题/01-I2C协议/LV001-I2C简介.md",
        "relativePath": "sdoc/60-通信专题/01-I2C协议/LV001-I2C简介.md"
      },
      {
        "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/60-通信专题/01-I2C协议/LV020-AT24C02实例分析.md",
        "relativePath": "sdoc/60-通信专题/01-I2C协议/LV020-AT24C02实例分析.md"
      },
      {
        "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/60-通信专题/01-I2C协议/index.md",
        "relativePath": "sdoc/60-通信专题/01-I2C协议/index.md"
      },
      {
        "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/60-通信专题/10-串口/LV001-串口通信简介.md",
        "relativePath": "sdoc/60-通信专题/10-串口/LV001-串口通信简介.md"
      },
      {
        "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/60-通信专题/10-串口/LV020-RS232简介.md",
        "relativePath": "sdoc/60-通信专题/10-串口/LV020-RS232简介.md"
      },
      {
        "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/60-通信专题/10-串口/LV030-RS485简介.md",
        "relativePath": "sdoc/60-通信专题/10-串口/LV030-RS485简介.md"
      },
      {
        "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/60-通信专题/10-串口/index.md",
        "relativePath": "sdoc/60-通信专题/10-串口/index.md"
      },
      {
        "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/60-通信专题/30-SPI/LV001-SPI简介.md",
        "relativePath": "sdoc/60-通信专题/30-SPI/LV001-SPI简介.md"
      },
      {
        "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/60-通信专题/30-SPI/index.md",
        "relativePath": "sdoc/60-通信专题/30-SPI/index.md"
      },
      {
        "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/60-通信专题/40-CAN/LV001-CAN通信简介.md",
        "relativePath": "sdoc/60-通信专题/40-CAN/LV001-CAN通信简介.md"
      },
      {
        "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/60-通信专题/40-CAN/index.md",
        "relativePath": "sdoc/60-通信专题/40-CAN/index.md"
      },
      {
        "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/60-通信专题/LV001-通信概述.md",
        "relativePath": "sdoc/60-通信专题/LV001-通信概述.md"
      },
      {
        "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/60-通信专题/index.md",
        "relativePath": "sdoc/60-通信专题/index.md"
      },
      {
        "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/index.md",
        "relativePath": "sdoc/index.md"
      }
    ],
    "totalFileWords": 432809,
    "eachFileWords": [
      {
        "fileInfo": {
          "filePath": "/home/runner/work/scm-docs/scm-docs/src/Examples/api-examples.md",
          "relativePath": "Examples/api-examples.md"
        },
        "wordCount": 119,
        "readingTime": "1m",
        "frontmatter": {
          "outline": "deep"
        }
      },
      {
        "fileInfo": {
          "filePath": "/home/runner/work/scm-docs/scm-docs/src/Examples/index.md",
          "relativePath": "Examples/index.md"
        },
        "wordCount": 11,
        "readingTime": "1m",
        "frontmatter": {
          "title": "Examples",
          "index": false,
          "icon": "laptop-code"
        }
      },
      {
        "fileInfo": {
          "filePath": "/home/runner/work/scm-docs/scm-docs/src/Examples/markdown-examples.md",
          "relativePath": "Examples/markdown-examples.md"
        },
        "wordCount": 133,
        "readingTime": "1m",
        "frontmatter": {}
      },
      {
        "fileInfo": {
          "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/01-开发工具/01-keil/LV001-keil简介.md",
          "relativePath": "sdoc/01-开发工具/01-keil/LV001-keil简介.md"
        },
        "wordCount": 3148,
        "readingTime": "12.3m",
        "frontmatter": {
          "title": "LV001-keil简介",
          "date": {},
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/dev-tool/keil/126b08a8b79e2ecaa634dd81",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "aa634dd813594b2686f1ae7b5b6911d4",
            "useduuid": "aa634dd81"
          }
        }
      },
      {
        "fileInfo": {
          "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/01-开发工具/01-keil/LV002-工程创建.md",
          "relativePath": "sdoc/01-开发工具/01-keil/LV002-工程创建.md"
        },
        "wordCount": 5090,
        "readingTime": "21.2m",
        "frontmatter": {
          "title": "LV002-工程创建",
          "date": {},
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/dev-tool/keil/126b08aa5e32382c0ab32a01",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "c0ab32a01a744756b6c0c3e4231ed9aa",
            "useduuid": "c0ab32a01"
          }
        }
      },
      {
        "fileInfo": {
          "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/01-开发工具/01-keil/LV010-程序与编译.md",
          "relativePath": "sdoc/01-开发工具/01-keil/LV010-程序与编译.md"
        },
        "wordCount": 7343,
        "readingTime": "28.1m",
        "frontmatter": {
          "title": "LV010-程序与编译",
          "date": {},
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/dev-tool/keil/126b08e6a9c4187125e57a5f",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "125e57a5ff854ebaa58b6fff51b99a11",
            "useduuid": "125e57a5f"
          }
        }
      },
      {
        "fileInfo": {
          "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/01-开发工具/01-keil/LV015-MDK工程文件简介.md",
          "relativePath": "sdoc/01-开发工具/01-keil/LV015-MDK工程文件简介.md"
        },
        "wordCount": 1699,
        "readingTime": "7.2m",
        "frontmatter": {
          "title": "LV015-MDK工程文件简介",
          "date": {},
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/dev-tool/keil/126b0913857d3670d6f0eef1",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "0d6f0eef153042fc862dc752cb0e3c2d",
            "useduuid": "0d6f0eef1"
          }
        }
      },
      {
        "fileInfo": {
          "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/01-开发工具/01-keil/LV016-Output目录文件.md",
          "relativePath": "sdoc/01-开发工具/01-keil/LV016-Output目录文件.md"
        },
        "wordCount": 9926,
        "readingTime": "39.4m",
        "frontmatter": {
          "title": "LV016-Output目录文件",
          "date": {},
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/dev-tool/keil/126b091384f9220a0ff9cf1d",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "a0ff9cf1dff34a1790997424e34bac30",
            "useduuid": "a0ff9cf1d"
          }
        }
      },
      {
        "fileInfo": {
          "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/01-开发工具/01-keil/LV017-Listing目录文件.md",
          "relativePath": "sdoc/01-开发工具/01-keil/LV017-Listing目录文件.md"
        },
        "wordCount": 3876,
        "readingTime": "15.7m",
        "frontmatter": {
          "title": "LV017-Listing目录文件",
          "date": {},
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/dev-tool/keil/126b0913865605b5493dc70e",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "5493dc70ee6849e0b32a91f39d8e2488",
            "useduuid": "5493dc70e"
          }
        }
      },
      {
        "fileInfo": {
          "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/01-开发工具/01-keil/LV020-SCT分散加载文件.md",
          "relativePath": "sdoc/01-开发工具/01-keil/LV020-SCT分散加载文件.md"
        },
        "wordCount": 4846,
        "readingTime": "18.6m",
        "frontmatter": {
          "title": "LV020-SCT分散加载文件",
          "date": {},
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/dev-tool/keil/126b08e6cfb5032dbc05b46a",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "dbc05b46abca47d8a176762f5148dc50",
            "useduuid": "dbc05b46a"
          }
        }
      },
      {
        "fileInfo": {
          "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/01-开发工具/01-keil/LV025-SCT文件应用.md",
          "relativePath": "sdoc/01-开发工具/01-keil/LV025-SCT文件应用.md"
        },
        "wordCount": 5872,
        "readingTime": "25.5m",
        "frontmatter": {
          "title": "LV025-SCT文件应用",
          "date": {},
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/dev-tool/keil/126b08e6d335070a7fd1934d",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "a7fd1934dbcb4eef93f57d3dce4e0059",
            "useduuid": "a7fd1934d"
          }
        }
      },
      {
        "fileInfo": {
          "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/01-开发工具/01-keil/LV040-在线调试.md",
          "relativePath": "sdoc/01-开发工具/01-keil/LV040-在线调试.md"
        },
        "wordCount": 865,
        "readingTime": "3.2m",
        "frontmatter": {
          "title": "LV040-在线调试",
          "date": {},
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/dev-tool/keil/126b08e76d70287e70afead6",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "e70afead6dd14692ad3b3749eb2cad4d",
            "useduuid": "e70afead6"
          }
        }
      },
      {
        "fileInfo": {
          "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/01-开发工具/01-keil/index.md",
          "relativePath": "sdoc/01-开发工具/01-keil/index.md"
        },
        "wordCount": 8,
        "readingTime": "1m",
        "frontmatter": {
          "title": "keil",
          "date": {},
          "permalink": "/sdoc/dev-tool/keil/126b08a8b73a3181c0cdd833",
          "icon": "laptop-code",
          "layout": "page",
          "catalogue": true,
          "path": "sdoc/01-开发工具/01-keil",
          "tdoc": {
            "detailDate": {},
            "fulluuid": "1c0cdd833c6f4d269b591c021d19c179",
            "useduuid": "1c0cdd833"
          }
        }
      },
      {
        "fileInfo": {
          "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/01-开发工具/02-STM32Cube/LV001-STM32CubeMX简介.md",
          "relativePath": "sdoc/01-开发工具/02-STM32Cube/LV001-STM32CubeMX简介.md"
        },
        "wordCount": 1557,
        "readingTime": "6.1m",
        "frontmatter": {
          "title": "LV001-STM32CubeMX简介",
          "date": {},
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/dev-tool/stm32cube/126b08aa58bc0838d250f7bd",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "8d250f7bdb9d4b4fb822b135635cdf20",
            "useduuid": "8d250f7bd"
          }
        }
      },
      {
        "fileInfo": {
          "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/01-开发工具/02-STM32Cube/LV002-STM32CubeMX工程创建.md",
          "relativePath": "sdoc/01-开发工具/02-STM32Cube/LV002-STM32CubeMX工程创建.md"
        },
        "wordCount": 523,
        "readingTime": "2.2m",
        "frontmatter": {
          "title": "LV002-STM32CubeMX工程创建",
          "date": {},
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/dev-tool/stm32cube/126b08aaf7c11b6e19f8d60a",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "e19f8d60a0f64d51a22bc5a8a04bf26f",
            "useduuid": "e19f8d60a"
          }
        }
      },
      {
        "fileInfo": {
          "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/01-开发工具/02-STM32Cube/LV010-Makefile管理工程.md",
          "relativePath": "sdoc/01-开发工具/02-STM32Cube/LV010-Makefile管理工程.md"
        },
        "wordCount": 7821,
        "readingTime": "32m",
        "frontmatter": {
          "title": "LV010-Makefile管理工程",
          "date": {},
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/dev-tool/stm32cube/126b08e6edcf211c7df7916d",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "c7df7916d51c40f295ec8bdf0e20a228",
            "useduuid": "c7df7916d"
          }
        }
      },
      {
        "fileInfo": {
          "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/01-开发工具/02-STM32Cube/LV012-Makefile文件分析.md",
          "relativePath": "sdoc/01-开发工具/02-STM32Cube/LV012-Makefile文件分析.md"
        },
        "wordCount": 4447,
        "readingTime": "18.3m",
        "frontmatter": {
          "title": "LV012-Makefile文件分析",
          "date": {},
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/dev-tool/stm32cube/126b08e6ef7626b7c442bfe2",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "7c442bfe2f7348608819bf852cebb54e",
            "useduuid": "7c442bfe2"
          }
        }
      },
      {
        "fileInfo": {
          "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/01-开发工具/02-STM32Cube/LV015-LD链接脚本.md",
          "relativePath": "sdoc/01-开发工具/02-STM32Cube/LV015-LD链接脚本.md"
        },
        "wordCount": 3461,
        "readingTime": "15.1m",
        "frontmatter": {
          "title": "LV040-LD链接脚本",
          "date": {},
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/dev-tool/keil/126b08e6f2e40a653e71bc02",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "53e71bc02dd346aeac5749700b205317",
            "useduuid": "53e71bc02"
          }
        }
      },
      {
        "fileInfo": {
          "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/01-开发工具/02-STM32Cube/LV030-STM32CubeIDE.md",
          "relativePath": "sdoc/01-开发工具/02-STM32Cube/LV030-STM32CubeIDE.md"
        },
        "wordCount": 6274,
        "readingTime": "27.9m",
        "frontmatter": {
          "title": "LV030-STM32CubeIDE",
          "date": {},
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/dev-tool/stm32cube/126b08e6f0211b46eabe9106",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "6eabe9106e39465d81b7853e19f74deb",
            "useduuid": "6eabe9106"
          }
        }
      },
      {
        "fileInfo": {
          "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/01-开发工具/02-STM32Cube/index.md",
          "relativePath": "sdoc/01-开发工具/02-STM32Cube/index.md"
        },
        "wordCount": 8,
        "readingTime": "1m",
        "frontmatter": {
          "title": "STM32Cube",
          "date": {},
          "permalink": "/sdoc/dev-tool/stm32cube/126b08aa588123a43b261847",
          "icon": "laptop-code",
          "layout": "page",
          "catalogue": true,
          "path": "sdoc/01-开发工具/02-STM32Cube",
          "tdoc": {
            "detailDate": {},
            "fulluuid": "43b26184793c4d0cb3aa0f4fd7a52cc3",
            "useduuid": "43b261847"
          }
        }
      },
      {
        "fileInfo": {
          "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/01-开发工具/10-下载与调试/LV001-下载与调试概述.md",
          "relativePath": "sdoc/01-开发工具/10-下载与调试/LV001-下载与调试概述.md"
        },
        "wordCount": 2465,
        "readingTime": "9.5m",
        "frontmatter": {
          "title": "LV001-下载与调试概述",
          "date": {},
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/dev-tool/burn-and-debug/126b08ab16fa3e011692369d",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "11692369dc744332bc6f2569dd8ec58a",
            "useduuid": "11692369d"
          }
        }
      },
      {
        "fileInfo": {
          "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/01-开发工具/10-下载与调试/LV002-JLink怎么使用.md",
          "relativePath": "sdoc/01-开发工具/10-下载与调试/LV002-JLink怎么使用.md"
        },
        "wordCount": 863,
        "readingTime": "3.5m",
        "frontmatter": {
          "title": "LV002-JLink怎么使用",
          "date": {},
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/dev-tool/burn-and-debug/126b08ab15ee0921c4f7fd64",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "1c4f7fd64909407cb589ad3348a0c376",
            "useduuid": "1c4f7fd64"
          }
        }
      },
      {
        "fileInfo": {
          "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/01-开发工具/10-下载与调试/LV010-JFlash简介.md",
          "relativePath": "sdoc/01-开发工具/10-下载与调试/LV010-JFlash简介.md"
        },
        "wordCount": 1663,
        "readingTime": "6.5m",
        "frontmatter": {
          "title": "LV010-JFlash简介",
          "date": {},
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/dev-tool/burn-and-debug/126b08b7f6ce25a6c770f3b5",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "6c770f3b50d84d7fad7f77bc05f872fc",
            "useduuid": "6c770f3b5"
          }
        }
      },
      {
        "fileInfo": {
          "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/01-开发工具/10-下载与调试/LV015-STLink怎么使用.md",
          "relativePath": "sdoc/01-开发工具/10-下载与调试/LV015-STLink怎么使用.md"
        },
        "wordCount": 1137,
        "readingTime": "4.6m",
        "frontmatter": {
          "title": "LV015-STLink怎么使用",
          "date": {},
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/dev-tool/burn-and-debug/126b08b9c98b11187c20e13a",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "87c20e13a48a44dfb380f22a1b102e34",
            "useduuid": "87c20e13a"
          }
        }
      },
      {
        "fileInfo": {
          "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/01-开发工具/10-下载与调试/LV020-ST-LINK-Utility简介.md",
          "relativePath": "sdoc/01-开发工具/10-下载与调试/LV020-ST-LINK-Utility简介.md"
        },
        "wordCount": 1089,
        "readingTime": "4.3m",
        "frontmatter": {
          "title": "LV020-ST-LINK-Utility简介",
          "date": {},
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/dev-tool/burn-and-debug/126b08b9cb90276fafba387f",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "fafba387f5f84aab849e4d8b464e22ad",
            "useduuid": "fafba387f"
          }
        }
      },
      {
        "fileInfo": {
          "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/01-开发工具/10-下载与调试/LV030-串口下载.md",
          "relativePath": "sdoc/01-开发工具/10-下载与调试/LV030-串口下载.md"
        },
        "wordCount": 2302,
        "readingTime": "8.7m",
        "frontmatter": {
          "title": "LV030-串口下载",
          "date": {},
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/dev-tool/burn-and-debug/126b08b9cea618afd74b243b",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "fd74b243b22149fe9c55a56a7b50b6d5",
            "useduuid": "fd74b243b"
          }
        }
      },
      {
        "fileInfo": {
          "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/01-开发工具/10-下载与调试/index.md",
          "relativePath": "sdoc/01-开发工具/10-下载与调试/index.md"
        },
        "wordCount": 12,
        "readingTime": "1m",
        "frontmatter": {
          "title": "下载与调试",
          "date": {},
          "permalink": "/sdoc/dev-tool/burn-and-debug/126b08ab150e18611433564e",
          "icon": "laptop-code",
          "layout": "page",
          "catalogue": true,
          "path": "sdoc/01-开发工具/10-下载与调试",
          "tdoc": {
            "detailDate": {},
            "fulluuid": "11433564e2d14b87940cda7a065c7245",
            "useduuid": "11433564e"
          }
        }
      },
      {
        "fileInfo": {
          "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/01-开发工具/index.md",
          "relativePath": "sdoc/01-开发工具/index.md"
        },
        "wordCount": 11,
        "readingTime": "1m",
        "frontmatter": {
          "title": "开发工具",
          "date": {},
          "permalink": "/sdoc/dev-tool/126b08a8b29007f159f1c463",
          "icon": "laptop-code",
          "layout": "page",
          "catalogue": true,
          "path": "sdoc/01-开发工具",
          "tdoc": {
            "detailDate": {},
            "fulluuid": "159f1c463cf844df87ef1a800e357e2b",
            "useduuid": "159f1c463"
          }
        }
      },
      {
        "fileInfo": {
          "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/10-基础篇/01-概述/LV001-ARM体系结构.md",
          "relativePath": "sdoc/10-基础篇/01-概述/LV001-ARM体系结构.md"
        },
        "wordCount": 3322,
        "readingTime": "12.2m",
        "frontmatter": {
          "title": "LV001-ARM体系结构",
          "date": {},
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/basic/overview/126b08ba0eae364f31526d00",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "f31526d004e841cf942bb1c43e30f261",
            "useduuid": "f31526d00"
          }
        }
      },
      {
        "fileInfo": {
          "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/10-基础篇/01-概述/LV010-常见存储器.md",
          "relativePath": "sdoc/10-基础篇/01-概述/LV010-常见存储器.md"
        },
        "wordCount": 5053,
        "readingTime": "18.4m",
        "frontmatter": {
          "title": "LV010-常见存储器",
          "date": {},
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/basic/overview/126b08ba13b3329986816cf4",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "986816cf43ae496ea97f2ac2344cf4bc",
            "useduuid": "986816cf4"
          }
        }
      },
      {
        "fileInfo": {
          "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/10-基础篇/01-概述/LV020-CortexM0简介.md",
          "relativePath": "sdoc/10-基础篇/01-概述/LV020-CortexM0简介.md"
        },
        "wordCount": 1388,
        "readingTime": "5.5m",
        "frontmatter": {
          "title": "LV020-CortexM0简介",
          "date": {},
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/basic/overview/126b08c738bc16b5b982661d",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "5b982661dbf54e3db91954b53e220c58",
            "useduuid": "5b982661d"
          }
        }
      },
      {
        "fileInfo": {
          "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/10-基础篇/01-概述/LV022-CortexM0存储器映射.md",
          "relativePath": "sdoc/10-基础篇/01-概述/LV022-CortexM0存储器映射.md"
        },
        "wordCount": 569,
        "readingTime": "2.4m",
        "frontmatter": {
          "title": "LV022-CortexM0存储器映射",
          "date": {},
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/basic/overview/126b08e6a7051c291c1151a6",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "91c1151a6b3c4a07b26e0383912b8543",
            "useduuid": "91c1151a6"
          }
        }
      },
      {
        "fileInfo": {
          "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/10-基础篇/01-概述/LV030-CortexM3简介.md",
          "relativePath": "sdoc/10-基础篇/01-概述/LV030-CortexM3简介.md"
        },
        "wordCount": 1812,
        "readingTime": "6.6m",
        "frontmatter": {
          "title": "LV030-CortexM3简介",
          "date": {},
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/basic/overview/126b08c73a222946645cba90",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "6645cba90f414432ac823c9d1938fc37",
            "useduuid": "6645cba90"
          }
        }
      },
      {
        "fileInfo": {
          "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/10-基础篇/01-概述/LV035-CortexM3存储器系统.md",
          "relativePath": "sdoc/10-基础篇/01-概述/LV035-CortexM3存储器系统.md"
        },
        "wordCount": 4422,
        "readingTime": "16.7m",
        "frontmatter": {
          "title": "LV035-CortexM3存储器系统",
          "date": {},
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/basic/overview/126b08c73d361161792b640a",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "1792b640ad2b40c1a34cc0ea4da24ed9",
            "useduuid": "1792b640a"
          }
        }
      },
      {
        "fileInfo": {
          "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/10-基础篇/01-概述/LV040-CortexM3异常.md",
          "relativePath": "sdoc/10-基础篇/01-概述/LV040-CortexM3异常.md"
        },
        "wordCount": 3824,
        "readingTime": "14m",
        "frontmatter": {
          "title": "LV040-CortexM3异常",
          "date": {},
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/basic/overview/126b08e5d7b911b28ed9ee4c",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "28ed9ee4c4ee4374a05b403be9d08519",
            "useduuid": "28ed9ee4c"
          }
        }
      },
      {
        "fileInfo": {
          "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/10-基础篇/01-概述/LV045-CortexM3的NVIC中断控制.md",
          "relativePath": "sdoc/10-基础篇/01-概述/LV045-CortexM3的NVIC中断控制.md"
        },
        "wordCount": 3660,
        "readingTime": "13.5m",
        "frontmatter": {
          "title": "LV040-CortexM3的NVIC中断控制",
          "date": {},
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/basic/overview/126b08e5fb5429a0009ffc8b",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "0009ffc8b07a4e459a29f0ba0518592b",
            "useduuid": "0009ffc8b"
          }
        }
      },
      {
        "fileInfo": {
          "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/10-基础篇/01-概述/index.md",
          "relativePath": "sdoc/10-基础篇/01-概述/index.md"
        },
        "wordCount": 9,
        "readingTime": "1m",
        "frontmatter": {
          "title": "概述",
          "date": {},
          "permalink": "/sdoc/basic/overview/126b08ba0e6d394d4eb563f9",
          "icon": "laptop-code",
          "layout": "page",
          "catalogue": true,
          "path": "sdoc/10-基础篇/01-概述",
          "tdoc": {
            "detailDate": {},
            "fulluuid": "d4eb563f9b6c43c88cf5f84d6b06a68d",
            "useduuid": "d4eb563f9"
          }
        }
      },
      {
        "fileInfo": {
          "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/10-基础篇/10-STM32基础/LV001-STM32概述.md",
          "relativePath": "sdoc/10-基础篇/10-STM32基础/LV001-STM32概述.md"
        },
        "wordCount": 5466,
        "readingTime": "22.6m",
        "frontmatter": {
          "title": "LV001-STM32概述",
          "date": {},
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/basic/stm32basic/126b08e5feaa2043ad05a48e",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "3ad05a48eac840679287e1b2301b039a",
            "useduuid": "3ad05a48e"
          }
        }
      },
      {
        "fileInfo": {
          "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/10-基础篇/10-STM32基础/LV010-嵌入式C语言.md",
          "relativePath": "sdoc/10-基础篇/10-STM32基础/LV010-嵌入式C语言.md"
        },
        "wordCount": 3793,
        "readingTime": "14.4m",
        "frontmatter": {
          "title": "LV010-嵌入式C语言",
          "date": {},
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/basic/stm32basic/126b08e600543a33cc0a657a",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "3cc0a657a05d403785cc85fa30a99505",
            "useduuid": "3cc0a657a"
          }
        }
      },
      {
        "fileInfo": {
          "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/10-基础篇/10-STM32基础/LV020-STM32怎么开发.md",
          "relativePath": "sdoc/10-基础篇/10-STM32基础/LV020-STM32怎么开发.md"
        },
        "wordCount": 5869,
        "readingTime": "21.6m",
        "frontmatter": {
          "title": "LV020-STM32怎么开发",
          "date": {},
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/basic/stm32basic/126b08e603011c2e21862cc6",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "e21862cc6b54423c827258b8732bcdd8",
            "useduuid": "e21862cc6"
          }
        }
      },
      {
        "fileInfo": {
          "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/10-基础篇/10-STM32基础/LV021-认识HAL库.md",
          "relativePath": "sdoc/10-基础篇/10-STM32基础/LV021-认识HAL库.md"
        },
        "wordCount": 11943,
        "readingTime": "46.6m",
        "frontmatter": {
          "title": "LV021-认识HAL库",
          "date": {},
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/basic/stm32basic/126b08e608d01035e7260fce",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "5e7260fce3184ab293e2a218bc58687b",
            "useduuid": "5e7260fce"
          }
        }
      },
      {
        "fileInfo": {
          "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/10-基础篇/10-STM32基础/LV030-STM32程序下载.md",
          "relativePath": "sdoc/10-基础篇/10-STM32基础/LV030-STM32程序下载.md"
        },
        "wordCount": 375,
        "readingTime": "1.6m",
        "frontmatter": {
          "title": "LV030-STM32程序下载",
          "date": {},
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/basic/stm32basic/126b08e7828f108bc0b2f2dc",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "bc0b2f2dc98042cb8e44dc7aa1995faa",
            "useduuid": "bc0b2f2dc"
          }
        }
      },
      {
        "fileInfo": {
          "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/10-基础篇/10-STM32基础/LV040-STM32系统架构.md",
          "relativePath": "sdoc/10-基础篇/10-STM32基础/LV040-STM32系统架构.md"
        },
        "wordCount": 1875,
        "readingTime": "6.9m",
        "frontmatter": {
          "title": "LV040-STM32系统架构",
          "date": {},
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/basic/stm32basic/126b08e6831f0a0031c3f015",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "031c3f0159bd41bfa7f2e89f6b50e340",
            "useduuid": "031c3f015"
          }
        }
      },
      {
        "fileInfo": {
          "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/10-基础篇/10-STM32基础/LV045-STM32存储器系统.md",
          "relativePath": "sdoc/10-基础篇/10-STM32基础/LV045-STM32存储器系统.md"
        },
        "wordCount": 4902,
        "readingTime": "18.3m",
        "frontmatter": {
          "title": "LV045-STM32存储器系统",
          "date": {},
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/basic/stm32basic/126b08e6840f3457e72c8780",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "7e72c87803ee4322bcd1072590f70cb3",
            "useduuid": "7e72c8780"
          }
        }
      },
      {
        "fileInfo": {
          "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/10-基础篇/10-STM32基础/LV050-STM32地址重映射.md",
          "relativePath": "sdoc/10-基础篇/10-STM32基础/LV050-STM32地址重映射.md"
        },
        "wordCount": 1939,
        "readingTime": "7.2m",
        "frontmatter": {
          "title": "LV050-STM32地址重映射",
          "date": {},
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/basic/stm32basic/126b08e6a53918eab18839bd",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "ab18839bd52b440b9ca51fa34ea3d714",
            "useduuid": "ab18839bd"
          }
        }
      },
      {
        "fileInfo": {
          "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/10-基础篇/10-STM32基础/index.md",
          "relativePath": "sdoc/10-基础篇/10-STM32基础/index.md"
        },
        "wordCount": 10,
        "readingTime": "1m",
        "frontmatter": {
          "title": "STM32基础",
          "date": {},
          "permalink": "/sdoc/basic/stm32basic/126b08e5fe7229fef4ddea37",
          "icon": "laptop-code",
          "layout": "page",
          "catalogue": true,
          "path": "sdoc/10-基础篇/10-STM32基础",
          "tdoc": {
            "detailDate": {},
            "fulluuid": "ef4ddea37f0e43adb291c85bef333f39",
            "useduuid": "ef4ddea37"
          }
        }
      },
      {
        "fileInfo": {
          "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/10-基础篇/20-STM32的启动/LV001-启动文件.md",
          "relativePath": "sdoc/10-基础篇/20-STM32的启动/LV001-启动文件.md"
        },
        "wordCount": 4233,
        "readingTime": "16.2m",
        "frontmatter": {
          "title": "LV001-启动文件",
          "date": {},
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/basic/stm32setup/126b08e788e83383285742cb",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "3285742cb8d24fba98867646d8e8231b",
            "useduuid": "3285742cb"
          }
        }
      },
      {
        "fileInfo": {
          "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/10-基础篇/20-STM32的启动/LV005-启动过程.md",
          "relativePath": "sdoc/10-基础篇/20-STM32的启动/LV005-启动过程.md"
        },
        "wordCount": 7021,
        "readingTime": "25.8m",
        "frontmatter": {
          "title": "LV005-启动过程",
          "date": {},
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/basic/stm32setup/126b08e78de70b59cd9ba362",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "9cd9ba36208d49f99352645293a0d904",
            "useduuid": "9cd9ba362"
          }
        }
      },
      {
        "fileInfo": {
          "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/10-基础篇/20-STM32的启动/LV010-在内部SRAM调试.md",
          "relativePath": "sdoc/10-基础篇/20-STM32的启动/LV010-在内部SRAM调试.md"
        },
        "wordCount": 5305,
        "readingTime": "20m",
        "frontmatter": {
          "title": "LV010-在内部SRAM调试",
          "date": {},
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/basic/stm32setup/126b08e7afad049a561ccf1b",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "a561ccf1b5d3443c85b0f21280803c3a",
            "useduuid": "a561ccf1b"
          }
        }
      },
      {
        "fileInfo": {
          "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/10-基础篇/20-STM32的启动/index.md",
          "relativePath": "sdoc/10-基础篇/20-STM32的启动/index.md"
        },
        "wordCount": 11,
        "readingTime": "1m",
        "frontmatter": {
          "title": "STM32的启动",
          "date": {},
          "permalink": "/sdoc/basic/stm32setup/126b08e788d3105084b556cd",
          "icon": "laptop-code",
          "layout": "page",
          "catalogue": true,
          "path": "sdoc/10-基础篇/20-STM32的启动",
          "tdoc": {
            "detailDate": {},
            "fulluuid": "084b556cdf0e40dca5af9b7ead1b8736",
            "useduuid": "084b556cd"
          }
        }
      },
      {
        "fileInfo": {
          "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/10-基础篇/30-STM32的中断/LV001-STM32中断简介.md",
          "relativePath": "sdoc/10-基础篇/30-STM32的中断/LV001-STM32中断简介.md"
        },
        "wordCount": 2595,
        "readingTime": "10.3m",
        "frontmatter": {
          "title": "LV001-STM32中断简介",
          "date": {},
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/basic/stm32interrupt/126b08f57241322fa604782d",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "fa604782d9e94117829d0f1a00c0d99d",
            "useduuid": "fa604782d"
          }
        }
      },
      {
        "fileInfo": {
          "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/10-基础篇/30-STM32的中断/index.md",
          "relativePath": "sdoc/10-基础篇/30-STM32的中断/index.md"
        },
        "wordCount": 11,
        "readingTime": "1m",
        "frontmatter": {
          "title": "STM32的中断",
          "date": {},
          "permalink": "/sdoc/basic/stm32interrupt/126b08f5722f25a054f0a4aa",
          "icon": "laptop-code",
          "layout": "page",
          "catalogue": true,
          "path": "sdoc/10-基础篇/30-STM32的中断",
          "tdoc": {
            "detailDate": {},
            "fulluuid": "054f0a4aad2c49b7b1d0cb29f73bf15d",
            "useduuid": "054f0a4aa"
          }
        }
      },
      {
        "fileInfo": {
          "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/10-基础篇/40-STM32时钟/LV001-STM32F1时钟系统.md",
          "relativePath": "sdoc/10-基础篇/40-STM32时钟/LV001-STM32F1时钟系统.md"
        },
        "wordCount": 4031,
        "readingTime": "14.9m",
        "frontmatter": {
          "title": "LV001-STM32F1时钟系统",
          "date": {},
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/basic/stm32clock/126b08f5d89727a6ee395582",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "6ee395582b8f401e806f3f6b8aac7e4a",
            "useduuid": "6ee395582"
          }
        }
      },
      {
        "fileInfo": {
          "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/10-基础篇/40-STM32时钟/LV010-STM32F1的SYSCLK.md",
          "relativePath": "sdoc/10-基础篇/40-STM32时钟/LV010-STM32F1的SYSCLK.md"
        },
        "wordCount": 2731,
        "readingTime": "11m",
        "frontmatter": {
          "title": "LV010-STM32F1的SYSCLK",
          "date": {},
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/basic/stm32clock/126b08f5dcd1392ef8558043",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "ef8558043211434e9696dd7586e40951",
            "useduuid": "ef8558043"
          }
        }
      },
      {
        "fileInfo": {
          "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/10-基础篇/40-STM32时钟/index.md",
          "relativePath": "sdoc/10-基础篇/40-STM32时钟/index.md"
        },
        "wordCount": 10,
        "readingTime": "1m",
        "frontmatter": {
          "title": "STM32时钟",
          "date": {},
          "permalink": "/sdoc/basic/stm32clock/126b08f5d87c1eab6c3871dc",
          "icon": "laptop-code",
          "layout": "page",
          "catalogue": true,
          "path": "sdoc/10-基础篇/40-STM32时钟",
          "tdoc": {
            "detailDate": {},
            "fulluuid": "b6c3871dcde442e8b6728118239493f8",
            "useduuid": "b6c3871dc"
          }
        }
      },
      {
        "fileInfo": {
          "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/10-基础篇/50-STM32内部FLASH/LV001-内部FLASH简介.md",
          "relativePath": "sdoc/10-基础篇/50-STM32内部FLASH/LV001-内部FLASH简介.md"
        },
        "wordCount": 6700,
        "readingTime": "25.3m",
        "frontmatter": {
          "title": "LV001-内部FLASH简介",
          "date": {},
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/basic/stm32flash/126b09345207167f3ed95339",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "f3ed95339a054335bd7861fbbdfca984",
            "useduuid": "f3ed95339"
          }
        }
      },
      {
        "fileInfo": {
          "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/10-基础篇/50-STM32内部FLASH/LV010-FLASH操作流程.md",
          "relativePath": "sdoc/10-基础篇/50-STM32内部FLASH/LV010-FLASH操作流程.md"
        },
        "wordCount": 3200,
        "readingTime": "13.6m",
        "frontmatter": {
          "title": "LV010-FLASH操作流程",
          "date": {},
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/basic/stm32flash/126b0934555e1e98aa9081c5",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "8aa9081c5bfb4658bc14302518ab96b3",
            "useduuid": "8aa9081c5"
          }
        }
      },
      {
        "fileInfo": {
          "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/10-基础篇/50-STM32内部FLASH/LV020-IAP编程简介.md",
          "relativePath": "sdoc/10-基础篇/50-STM32内部FLASH/LV020-IAP编程简介.md"
        },
        "wordCount": 2352,
        "readingTime": "8.4m",
        "frontmatter": {
          "title": "LV020-IAP编程简介",
          "date": {},
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/basic/stm32flash/126b0e26745a3124f27972bd",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "4f27972bd3fc4860b4605d3ba9d93bb7",
            "useduuid": "4f27972bd"
          }
        }
      },
      {
        "fileInfo": {
          "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/10-基础篇/50-STM32内部FLASH/LV025-IAP编程实现.md",
          "relativePath": "sdoc/10-基础篇/50-STM32内部FLASH/LV025-IAP编程实现.md"
        },
        "wordCount": 3055,
        "readingTime": "12.7m",
        "frontmatter": {
          "title": "LV025-IAP编程实现",
          "date": {},
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/basic/stm32flash/126b0e4540061175c7584cc2",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "5c7584cc23ea451aaa122d51f3053c7c",
            "useduuid": "5c7584cc2"
          }
        }
      },
      {
        "fileInfo": {
          "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/10-基础篇/50-STM32内部FLASH/index.md",
          "relativePath": "sdoc/10-基础篇/50-STM32内部FLASH/index.md"
        },
        "wordCount": 10,
        "readingTime": "1m",
        "frontmatter": {
          "title": "STM32内部FLASH",
          "date": {},
          "permalink": "/sdoc/basic/stm32flash/126b093451ee0b11abb28aa5",
          "icon": "laptop-code",
          "layout": "page",
          "catalogue": true,
          "path": "sdoc/10-基础篇/50-STM32内部FLASH",
          "tdoc": {
            "detailDate": {},
            "fulluuid": "1abb28aa575f41768b5e5e5c4eb55ad1",
            "useduuid": "1abb28aa5"
          }
        }
      },
      {
        "fileInfo": {
          "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/10-基础篇/60-STM32的内存/LV001-STM32内存简介.md",
          "relativePath": "sdoc/10-基础篇/60-STM32的内存/LV001-STM32内存简介.md"
        },
        "wordCount": 922,
        "readingTime": "3.6m",
        "frontmatter": {
          "title": "LV001-STM32内存简介",
          "date": {},
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/basic/stm32memory/126b0941431c016e4bdd2a68",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "e4bdd2a68030419b91dea7af452724aa",
            "useduuid": "e4bdd2a68"
          }
        }
      },
      {
        "fileInfo": {
          "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/10-基础篇/60-STM32的内存/LV010-内存管理.md",
          "relativePath": "sdoc/10-基础篇/60-STM32的内存/LV010-内存管理.md"
        },
        "wordCount": 1411,
        "readingTime": "5.4m",
        "frontmatter": {
          "title": "LV010-内存管理",
          "date": {},
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/basic/stm32memory/126b0e24d5e326e3a7296e85",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "3a7296e85ae54af393dd0790947698ce",
            "useduuid": "3a7296e85"
          }
        }
      },
      {
        "fileInfo": {
          "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/10-基础篇/60-STM32的内存/index.md",
          "relativePath": "sdoc/10-基础篇/60-STM32的内存/index.md"
        },
        "wordCount": 11,
        "readingTime": "1m",
        "frontmatter": {
          "title": "STM32的内存",
          "date": {},
          "permalink": "/sdoc/basic/stm32memory/126b094142e21f978c1c589e",
          "icon": "laptop-code",
          "layout": "page",
          "catalogue": true,
          "path": "sdoc/10-基础篇/60-STM32的内存",
          "tdoc": {
            "detailDate": {},
            "fulluuid": "78c1c589edb3469d9a8af92640541c20",
            "useduuid": "78c1c589e"
          }
        }
      },
      {
        "fileInfo": {
          "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/10-基础篇/70-STM32电源管理/LV001-电源管理简介.md",
          "relativePath": "sdoc/10-基础篇/70-STM32电源管理/LV001-电源管理简介.md"
        },
        "wordCount": 3994,
        "readingTime": "15.7m",
        "frontmatter": {
          "title": "LV001-电源管理简介",
          "date": {},
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/basic/stm32pwr/126b09513f17393c50358806",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "c503588060cf485a965221f48977e91d",
            "useduuid": "c50358806"
          }
        }
      },
      {
        "fileInfo": {
          "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/10-基础篇/70-STM32电源管理/LV010-三种模式实现.md",
          "relativePath": "sdoc/10-基础篇/70-STM32电源管理/LV010-三种模式实现.md"
        },
        "wordCount": 3159,
        "readingTime": "12.7m",
        "frontmatter": {
          "title": "LV010-三种模式实现",
          "date": {},
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/basic/stm32pwr/126b095140443bc89b1ebe84",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "89b1ebe841074780aa0a2abaac3caa24",
            "useduuid": "89b1ebe84"
          }
        }
      },
      {
        "fileInfo": {
          "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/10-基础篇/70-STM32电源管理/index.md",
          "relativePath": "sdoc/10-基础篇/70-STM32电源管理/index.md"
        },
        "wordCount": 12,
        "readingTime": "1m",
        "frontmatter": {
          "title": "STM32电源管理",
          "date": {},
          "permalink": "/sdoc/basic/stm32pwr/126b09513f0a17a9a28ea1f0",
          "icon": "laptop-code",
          "layout": "page",
          "catalogue": true,
          "path": "sdoc/10-基础篇/70-STM32电源管理",
          "tdoc": {
            "detailDate": {},
            "fulluuid": "9a28ea1f0f3845a58bfeac68e4250208",
            "useduuid": "9a28ea1f0"
          }
        }
      },
      {
        "fileInfo": {
          "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/10-基础篇/index.md",
          "relativePath": "sdoc/10-基础篇/index.md"
        },
        "wordCount": 10,
        "readingTime": "1m",
        "frontmatter": {
          "title": "基础篇",
          "date": {},
          "permalink": "/sdoc/basic/126b08ba0be902f861c0b265",
          "icon": "laptop-code",
          "layout": "page",
          "catalogue": true,
          "path": "sdoc/10-基础篇",
          "tdoc": {
            "detailDate": {},
            "fulluuid": "861c0b265b6a42dca0d9abcea5e1d03f",
            "useduuid": "861c0b265"
          }
        }
      },
      {
        "fileInfo": {
          "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/01-GPIO/LV001-STM32的GPIO简介.md",
          "relativePath": "sdoc/20-基本外设篇/01-GPIO/LV001-STM32的GPIO简介.md"
        },
        "wordCount": 8880,
        "readingTime": "34.1m",
        "frontmatter": {
          "title": "LV001-STM32的GPIO简介",
          "date": {},
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/gpio/126b08e802d21f6e4f658296",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "e4f658296d8f440694a80e81f31777d4",
            "useduuid": "e4f658296"
          }
        }
      },
      {
        "fileInfo": {
          "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/01-GPIO/LV010-输入输出模式详解.md",
          "relativePath": "sdoc/20-基本外设篇/01-GPIO/LV010-输入输出模式详解.md"
        },
        "wordCount": 5669,
        "readingTime": "20.8m",
        "frontmatter": {
          "title": "LV010-输入输出模式详解",
          "date": {},
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/gpio/126b08e804d303ad5b541ecd",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "d5b541ecde0f4e1799e17d09e88a33fa",
            "useduuid": "d5b541ecd"
          }
        }
      },
      {
        "fileInfo": {
          "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/01-GPIO/LV020-GPIO控制LED.md",
          "relativePath": "sdoc/20-基本外设篇/01-GPIO/LV020-GPIO控制LED.md"
        },
        "wordCount": 257,
        "readingTime": "1m",
        "frontmatter": {
          "title": "LV020-GPIO控制LED",
          "date": {},
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/gpio/126b08e805ca1e15c40474c4",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "5c40474c47fc44e49114f4489f7fb359",
            "useduuid": "5c40474c4"
          }
        }
      },
      {
        "fileInfo": {
          "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/01-GPIO/LV030-按键检测.md",
          "relativePath": "sdoc/20-基本外设篇/01-GPIO/LV030-按键检测.md"
        },
        "wordCount": 625,
        "readingTime": "2.5m",
        "frontmatter": {
          "title": "LV030-按键检测",
          "date": {},
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/gpio/126b08e8078f1f2b7ad1d6a6",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "b7ad1d6a65df41fab1ae6bd4b2de28b9",
            "useduuid": "b7ad1d6a6"
          }
        }
      },
      {
        "fileInfo": {
          "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/01-GPIO/LV040-外部中断.md",
          "relativePath": "sdoc/20-基本外设篇/01-GPIO/LV040-外部中断.md"
        },
        "wordCount": 3016,
        "readingTime": "11.2m",
        "frontmatter": {
          "title": "LV040-外部中断",
          "date": {},
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/gpio/126b08f58a5c2c09e1d6100f",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "9e1d6100f7d74737974bd9674a8ba8c0",
            "useduuid": "9e1d6100f"
          }
        }
      },
      {
        "fileInfo": {
          "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/01-GPIO/LV045-外部中断实例.md",
          "relativePath": "sdoc/20-基本外设篇/01-GPIO/LV045-外部中断实例.md"
        },
        "wordCount": 988,
        "readingTime": "4.2m",
        "frontmatter": {
          "title": "LV045-外部中断实例",
          "date": {},
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/gpio/126b08f596281cc89a3bc4c6",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "89a3bc4c6a9b4249afce4152ca5d1241",
            "useduuid": "89a3bc4c6"
          }
        }
      },
      {
        "fileInfo": {
          "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/01-GPIO/index.md",
          "relativePath": "sdoc/20-基本外设篇/01-GPIO/index.md"
        },
        "wordCount": 8,
        "readingTime": "1m",
        "frontmatter": {
          "title": "GPIO",
          "date": {},
          "permalink": "/sdoc/peripheral/gpio/126b08e802bd2a57f9711bf1",
          "icon": "laptop-code",
          "layout": "page",
          "catalogue": true,
          "path": "sdoc/20-基本外设篇/01-GPIO",
          "tdoc": {
            "detailDate": {},
            "fulluuid": "7f9711bf1db3401eb1e7e7f93aec4aed",
            "useduuid": "7f9711bf1"
          }
        }
      },
      {
        "fileInfo": {
          "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/10-UART/LV001-串口通信简介.md",
          "relativePath": "sdoc/20-基本外设篇/10-UART/LV001-串口通信简介.md"
        },
        "wordCount": 2334,
        "readingTime": "8.1m",
        "frontmatter": {
          "title": "LV001-串口通信简介",
          "date": {},
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/uart/126b08f60edb3b6ac7962cbf",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "ac7962cbf7d245659539f5436bb59e37",
            "useduuid": "ac7962cbf"
          }
        }
      },
      {
        "fileInfo": {
          "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/10-UART/LV010-STM32的串口.md",
          "relativePath": "sdoc/20-基本外设篇/10-UART/LV010-STM32的串口.md"
        },
        "wordCount": 3179,
        "readingTime": "12m",
        "frontmatter": {
          "title": "LV010-STM32的串口",
          "date": {},
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/uart/126b08f6146d2d238b102738",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "38b1027380d146cb959e571687931c97",
            "useduuid": "38b102738"
          }
        }
      },
      {
        "fileInfo": {
          "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/10-UART/LV020-串口收发实例.md",
          "relativePath": "sdoc/20-基本外设篇/10-UART/LV020-串口收发实例.md"
        },
        "wordCount": 4235,
        "readingTime": "17.3m",
        "frontmatter": {
          "title": "LV020-串口收发实例",
          "date": {},
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/uart/126b08f61664097f4a0617fc",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "f4a0617fc94447a8962e262d9db98842",
            "useduuid": "f4a0617fc"
          }
        }
      },
      {
        "fileInfo": {
          "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/10-UART/index.md",
          "relativePath": "sdoc/20-基本外设篇/10-UART/index.md"
        },
        "wordCount": 8,
        "readingTime": "1m",
        "frontmatter": {
          "title": "UART",
          "date": {},
          "permalink": "/sdoc/peripheral/uart/126b08f60e8936153c897e51",
          "icon": "laptop-code",
          "layout": "page",
          "catalogue": true,
          "path": "sdoc/20-基本外设篇/10-UART",
          "tdoc": {
            "detailDate": {},
            "fulluuid": "53c897e519bc40c28cf3a12d6b1462bf",
            "useduuid": "53c897e51"
          }
        }
      },
      {
        "fileInfo": {
          "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/15-定时器/LV001-基本定时器简介.md",
          "relativePath": "sdoc/20-基本外设篇/15-定时器/LV001-基本定时器简介.md"
        },
        "wordCount": 2535,
        "readingTime": "9.2m",
        "frontmatter": {
          "title": "LV001-基本定时器简介",
          "date": {},
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/timer/basic/126b08f6a8e32e3427f3a2b2",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "427f3a2b26fc476299e1f6f52f2c33ad",
            "useduuid": "427f3a2b2"
          }
        }
      },
      {
        "fileInfo": {
          "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/15-定时器/LV030-通用定时器简介.md",
          "relativePath": "sdoc/20-基本外设篇/15-定时器/LV030-通用定时器简介.md"
        },
        "wordCount": 5274,
        "readingTime": "19.4m",
        "frontmatter": {
          "title": "LV030-通用定时器简介",
          "date": {},
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/timer/126b08f6aa441b536809798e",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "36809798e68046309b813b9706a23f8a",
            "useduuid": "36809798e"
          }
        }
      },
      {
        "fileInfo": {
          "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/15-定时器/LV035-通用定时器的中断.md",
          "relativePath": "sdoc/20-基本外设篇/15-定时器/LV035-通用定时器的中断.md"
        },
        "wordCount": 1059,
        "readingTime": "4.1m",
        "frontmatter": {
          "title": "LV035-通用定时器的中断",
          "date": {},
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/timer/126b08f6aa9f293ebbce26b2",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "ebbce26b2eed4f0e8e7db13c33566c30",
            "useduuid": "ebbce26b2"
          }
        }
      },
      {
        "fileInfo": {
          "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/15-定时器/LV040-通用定时器PWM输出.md",
          "relativePath": "sdoc/20-基本外设篇/15-定时器/LV040-通用定时器PWM输出.md"
        },
        "wordCount": 1227,
        "readingTime": "4.7m",
        "frontmatter": {
          "title": "LV040-通用定时器PWM输出",
          "date": {},
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/timer/126b08f6aac20ab7bc66d777",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "7bc66d777a344e838bab8b97634f96bc",
            "useduuid": "7bc66d777"
          }
        }
      },
      {
        "fileInfo": {
          "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/15-定时器/LV045-通用定时器输入捕获.md",
          "relativePath": "sdoc/20-基本外设篇/15-定时器/LV045-通用定时器输入捕获.md"
        },
        "wordCount": 1691,
        "readingTime": "6.1m",
        "frontmatter": {
          "title": "LV045-通用定时器输入捕获",
          "date": {},
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/timer/126b08f6ab6404f5fdfb5648",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "5fdfb5648d1542adb31bc692aaebfac4",
            "useduuid": "5fdfb5648"
          }
        }
      },
      {
        "fileInfo": {
          "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/15-定时器/LV050-通用定时器脉冲计数.md",
          "relativePath": "sdoc/20-基本外设篇/15-定时器/LV050-通用定时器脉冲计数.md"
        },
        "wordCount": 1467,
        "readingTime": "5.4m",
        "frontmatter": {
          "title": "LV050-通用定时器脉冲计数",
          "date": {},
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/timer/126b08f6ab873bc74e57e381",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "74e57e3815ac43a9b2ad64b853530fde",
            "useduuid": "74e57e381"
          }
        }
      },
      {
        "fileInfo": {
          "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/15-定时器/LV070-高级定时器简介.md",
          "relativePath": "sdoc/20-基本外设篇/15-定时器/LV070-高级定时器简介.md"
        },
        "wordCount": 1116,
        "readingTime": "4m",
        "frontmatter": {
          "title": "LV070-高级定时器简介",
          "date": {},
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/timer/126b08f6abf821065c6674f2",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "65c6674f24194a5c905c5931e3b1bb25",
            "useduuid": "65c6674f2"
          }
        }
      },
      {
        "fileInfo": {
          "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/15-定时器/LV075-高级定时器PWM输出.md",
          "relativePath": "sdoc/20-基本外设篇/15-定时器/LV075-高级定时器PWM输出.md"
        },
        "wordCount": 1622,
        "readingTime": "6.1m",
        "frontmatter": {
          "title": "LV075-高级定时器PWM输出",
          "date": {},
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/timer/126b08f6ac4f2bb02b42403e",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "02b42403e6334b1e88b3aefe535488bf",
            "useduuid": "02b42403e"
          }
        }
      },
      {
        "fileInfo": {
          "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/15-定时器/LV080-高级定时器输出比较模式.md",
          "relativePath": "sdoc/20-基本外设篇/15-定时器/LV080-高级定时器输出比较模式.md"
        },
        "wordCount": 1441,
        "readingTime": "5.6m",
        "frontmatter": {
          "title": "LV080-高级定时器输出比较模式",
          "date": {},
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/timer/126b08f6aca0253099c9ba29",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "099c9ba29781487ab77ef3977ecd7122",
            "useduuid": "099c9ba29"
          }
        }
      },
      {
        "fileInfo": {
          "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/15-定时器/LV085-高级定时器互补输出.md",
          "relativePath": "sdoc/20-基本外设篇/15-定时器/LV085-高级定时器互补输出.md"
        },
        "wordCount": 2650,
        "readingTime": "10.2m",
        "frontmatter": {
          "title": "LV085-高级定时器互补输出",
          "date": {},
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/timer/126b08f6ad8f2e0487d6c438",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "487d6c4384224a459898d149b83609e0",
            "useduuid": "487d6c438"
          }
        }
      },
      {
        "fileInfo": {
          "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/15-定时器/LV090-高级定时器PWM输入.md",
          "relativePath": "sdoc/20-基本外设篇/15-定时器/LV090-高级定时器PWM输入.md"
        },
        "wordCount": 1960,
        "readingTime": "7.5m",
        "frontmatter": {
          "title": "LV090-高级定时器PWM输入",
          "date": {},
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/timer/126b08f6ae2512a51a9eec42",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "51a9eec423e4412c99aa8247ccd2092d",
            "useduuid": "51a9eec42"
          }
        }
      },
      {
        "fileInfo": {
          "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/15-定时器/LV100-SysTick定时器简介.md",
          "relativePath": "sdoc/20-基本外设篇/15-定时器/LV100-SysTick定时器简介.md"
        },
        "wordCount": 4404,
        "readingTime": "17.8m",
        "frontmatter": {
          "title": "LV100-SysTick定时器简介",
          "date": {},
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/timer/126b08f7176d34627620ad1b",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "27620ad1b6704f3ab64b6bc4d14b88f4",
            "useduuid": "27620ad1b"
          }
        }
      },
      {
        "fileInfo": {
          "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/15-定时器/LV105-自定义延时函数.md",
          "relativePath": "sdoc/20-基本外设篇/15-定时器/LV105-自定义延时函数.md"
        },
        "wordCount": 868,
        "readingTime": "3.5m",
        "frontmatter": {
          "title": "LV105-自定义延时函数",
          "date": {},
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/timer/126b08f71bb31f61f9e3c819",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "1f9e3c81978544cfa5b36e225514bb0d",
            "useduuid": "1f9e3c819"
          }
        }
      },
      {
        "fileInfo": {
          "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/15-定时器/index.md",
          "relativePath": "sdoc/20-基本外设篇/15-定时器/index.md"
        },
        "wordCount": 10,
        "readingTime": "1m",
        "frontmatter": {
          "title": "定时器",
          "date": {},
          "permalink": "/sdoc/peripheral/timer/126b08f6a16a27128730debb",
          "icon": "laptop-code",
          "layout": "page",
          "catalogue": true,
          "path": "sdoc/20-基本外设篇/15-定时器",
          "tdoc": {
            "detailDate": {},
            "fulluuid": "28730debb0654b249b59588fa37fa6e5",
            "useduuid": "28730debb"
          }
        }
      },
      {
        "fileInfo": {
          "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/20-看门狗/LV001-看门狗简介.md",
          "relativePath": "sdoc/20-基本外设篇/20-看门狗/LV001-看门狗简介.md"
        },
        "wordCount": 5267,
        "readingTime": "19.8m",
        "frontmatter": {
          "title": "LV001-看门狗简介",
          "date": {},
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/watchdog/126b09043ae916195cb39541",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "95cb3954118d49beb6d6912a9e3cb522",
            "useduuid": "95cb39541"
          }
        }
      },
      {
        "fileInfo": {
          "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/20-看门狗/LV010-看门狗使用实例.md",
          "relativePath": "sdoc/20-基本外设篇/20-看门狗/LV010-看门狗使用实例.md"
        },
        "wordCount": 969,
        "readingTime": "4.1m",
        "frontmatter": {
          "title": "LV010-看门狗使用实例",
          "date": {},
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/watchdog/126b09043c29000296442c6e",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "296442c6e9ba4600b39cd12075ea87af",
            "useduuid": "296442c6e"
          }
        }
      },
      {
        "fileInfo": {
          "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/20-看门狗/index.md",
          "relativePath": "sdoc/20-基本外设篇/20-看门狗/index.md"
        },
        "wordCount": 10,
        "readingTime": "1m",
        "frontmatter": {
          "title": "看门狗",
          "date": {},
          "permalink": "/sdoc/peripheral/watchdog/126b09043af80c9abdc4e3ef",
          "icon": "laptop-code",
          "layout": "page",
          "catalogue": true,
          "path": "sdoc/20-基本外设篇/20-看门狗",
          "tdoc": {
            "detailDate": {},
            "fulluuid": "abdc4e3ef97f4086a7f26017507a6a97",
            "useduuid": "abdc4e3ef"
          }
        }
      },
      {
        "fileInfo": {
          "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/25-FSMC/01-FSMC基础/LV001-FSMC简介.md",
          "relativePath": "sdoc/20-基本外设篇/25-FSMC/01-FSMC基础/LV001-FSMC简介.md"
        },
        "wordCount": 2636,
        "readingTime": "10m",
        "frontmatter": {
          "title": "LV001-FSMC简介",
          "date": {},
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/fsmc/fsmc-basic/126b092492553b23e8704ba7",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "3e8704ba79214a3cbb9ab231d637b62e",
            "useduuid": "3e8704ba7"
          }
        }
      },
      {
        "fileInfo": {
          "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/25-FSMC/01-FSMC基础/LV005-存储器映射与控制器.md",
          "relativePath": "sdoc/20-基本外设篇/25-FSMC/01-FSMC基础/LV005-存储器映射与控制器.md"
        },
        "wordCount": 6085,
        "readingTime": "24m",
        "frontmatter": {
          "title": "LV005-存储器映射与控制器",
          "date": {},
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/fsmc/fsmc-basic/126b092499b000721416c9a0",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "21416c9a03d8478188e3897a2c59aa5e",
            "useduuid": "21416c9a0"
          }
        }
      },
      {
        "fileInfo": {
          "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/25-FSMC/01-FSMC基础/LV010-相关HAL库函数.md",
          "relativePath": "sdoc/20-基本外设篇/25-FSMC/01-FSMC基础/LV010-相关HAL库函数.md"
        },
        "wordCount": 2137,
        "readingTime": "8.3m",
        "frontmatter": {
          "title": "LV010-相关HAL库函数",
          "date": {},
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/fsmc/fsmc-basic/126b0924b19533081adda526",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "81adda5266e04132bfcad67ecceec69d",
            "useduuid": "81adda526"
          }
        }
      },
      {
        "fileInfo": {
          "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/25-FSMC/01-FSMC基础/index.md",
          "relativePath": "sdoc/20-基本外设篇/25-FSMC/01-FSMC基础/index.md"
        },
        "wordCount": 10,
        "readingTime": "1m",
        "frontmatter": {
          "title": "FSMC基础",
          "date": {},
          "permalink": "/sdoc/peripheral/fsmc/fsmc-basic/126b09248c5109dd1fe11f31",
          "icon": "laptop-code",
          "layout": "page",
          "catalogue": true,
          "path": "sdoc/20-基本外设篇/25-FSMC/01-FSMC基础",
          "tdoc": {
            "detailDate": {},
            "fulluuid": "d1fe11f31c3347a2be9288e7705b3e2e",
            "useduuid": "d1fe11f31"
          }
        }
      },
      {
        "fileInfo": {
          "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/25-FSMC/05-外部SRAM/LV001-概述.md",
          "relativePath": "sdoc/20-基本外设篇/25-FSMC/05-外部SRAM/LV001-概述.md"
        },
        "wordCount": 246,
        "readingTime": "1m",
        "frontmatter": {
          "title": "LV001-概述",
          "date": {},
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/fsmc/sram/126b09248e5b007fcadf7acc",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "fcadf7accc90458fa4cab2cebf963be3",
            "useduuid": "fcadf7acc"
          }
        }
      },
      {
        "fileInfo": {
          "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/25-FSMC/05-外部SRAM/LV002-XM8A51216简介.md",
          "relativePath": "sdoc/20-基本外设篇/25-FSMC/05-外部SRAM/LV002-XM8A51216简介.md"
        },
        "wordCount": 452,
        "readingTime": "1.8m",
        "frontmatter": {
          "title": "LV002-XM8A51216简介",
          "date": {},
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/fsmc/sram/126b09248ce51200a79d393f",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "0a79d393fee944b89889bdacfda6ea95",
            "useduuid": "0a79d393f"
          }
        }
      },
      {
        "fileInfo": {
          "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/25-FSMC/05-外部SRAM/LV005-IS62WV51216简介.md",
          "relativePath": "sdoc/20-基本外设篇/25-FSMC/05-外部SRAM/LV005-IS62WV51216简介.md"
        },
        "wordCount": 2046,
        "readingTime": "8.1m",
        "frontmatter": {
          "title": "LV005-IS62WV51216简介",
          "date": {},
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/fsmc/sram/126b09248db61d861c837fd7",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "61c837fd7bf24e47b455ebbf97c03db7",
            "useduuid": "61c837fd7"
          }
        }
      },
      {
        "fileInfo": {
          "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/25-FSMC/05-外部SRAM/LV015-外部SRAM读写实例.md",
          "relativePath": "sdoc/20-基本外设篇/25-FSMC/05-外部SRAM/LV015-外部SRAM读写实例.md"
        },
        "wordCount": 4945,
        "readingTime": "20.9m",
        "frontmatter": {
          "title": "LV015-外部SRAM读写实例",
          "date": {},
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/fsmc/sram/126b0924b2d20263b97733d0",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "3b97733d0c5f43148008ceafa2203f32",
            "useduuid": "3b97733d0"
          }
        }
      },
      {
        "fileInfo": {
          "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/25-FSMC/05-外部SRAM/index.md",
          "relativePath": "sdoc/20-基本外设篇/25-FSMC/05-外部SRAM/index.md"
        },
        "wordCount": 10,
        "readingTime": "1m",
        "frontmatter": {
          "title": "外部SRAM",
          "date": {},
          "permalink": "/sdoc/peripheral/fsmc/sram/126b09248c59366360c72955",
          "icon": "laptop-code",
          "layout": "page",
          "catalogue": true,
          "path": "sdoc/20-基本外设篇/25-FSMC/05-外部SRAM",
          "tdoc": {
            "detailDate": {},
            "fulluuid": "360c7295571642c0bb65a4fa32d8bf54",
            "useduuid": "360c72955"
          }
        }
      },
      {
        "fileInfo": {
          "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/25-FSMC/index.md",
          "relativePath": "sdoc/20-基本外设篇/25-FSMC/index.md"
        },
        "wordCount": 8,
        "readingTime": "1m",
        "frontmatter": {
          "title": "FSMC",
          "date": {},
          "permalink": "/sdoc/peripheral/fsmc/126b09248c2122169ae2fda2",
          "icon": "laptop-code",
          "layout": "page",
          "catalogue": true,
          "path": "sdoc/20-基本外设篇/25-FSMC",
          "tdoc": {
            "detailDate": {},
            "fulluuid": "69ae2fda2bcb44fa90fa3297c99541fc",
            "useduuid": "69ae2fda2"
          }
        }
      },
      {
        "fileInfo": {
          "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/30-I2C/LV001-STM32的I2C.md",
          "relativePath": "sdoc/20-基本外设篇/30-I2C/LV001-STM32的I2C.md"
        },
        "wordCount": 3324,
        "readingTime": "12.8m",
        "frontmatter": {
          "title": "LV001-STM32的I2C",
          "date": {},
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/i2c/126b09344c01323883ac1ab4",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "883ac1ab454e45c8903061818823ca7f",
            "useduuid": "883ac1ab4"
          }
        }
      },
      {
        "fileInfo": {
          "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/30-I2C/LV010-AT24C02简介.md",
          "relativePath": "sdoc/20-基本外设篇/30-I2C/LV010-AT24C02简介.md"
        },
        "wordCount": 747,
        "readingTime": "3.3m",
        "frontmatter": {
          "title": "LV010-AT24C02简介",
          "date": {},
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/i2c/126b09344d8f021f00cacd6c",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "f00cacd6ccbd4a459325107dc47b447a",
            "useduuid": "f00cacd6c"
          }
        }
      },
      {
        "fileInfo": {
          "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/30-I2C/LV015-AT24C02使用实例.md",
          "relativePath": "sdoc/20-基本外设篇/30-I2C/LV015-AT24C02使用实例.md"
        },
        "wordCount": 2000,
        "readingTime": "8.7m",
        "frontmatter": {
          "title": "LV015-AT24C02使用实例",
          "date": {},
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/i2c/126b09344f37186302faabd7",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "302faabd7f05494cbdcffb39c1c91164",
            "useduuid": "302faabd7"
          }
        }
      },
      {
        "fileInfo": {
          "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/30-I2C/index.md",
          "relativePath": "sdoc/20-基本外设篇/30-I2C/index.md"
        },
        "wordCount": 8,
        "readingTime": "1m",
        "frontmatter": {
          "title": "I2C",
          "date": {},
          "permalink": "/sdoc/peripheral/i2c/126b09344bc72d87b3b3eff9",
          "icon": "laptop-code",
          "layout": "page",
          "catalogue": true,
          "path": "sdoc/20-基本外设篇/30-I2C",
          "tdoc": {
            "detailDate": {},
            "fulluuid": "7b3b3eff937f4fa1bc99114f9f726d4b",
            "useduuid": "7b3b3eff9"
          }
        }
      },
      {
        "fileInfo": {
          "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/35-SPI/LV001-STM32的SPI.md",
          "relativePath": "sdoc/20-基本外设篇/35-SPI/LV001-STM32的SPI.md"
        },
        "wordCount": 2919,
        "readingTime": "11.4m",
        "frontmatter": {
          "title": "LV001-STM32的SPI",
          "date": {},
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/spi/126b0950f4ae14889c830ae3",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "89c830ae3a594952be17b5abc6bbb737",
            "useduuid": "89c830ae3"
          }
        }
      },
      {
        "fileInfo": {
          "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/35-SPI/LV010-W25QXXX简介.md",
          "relativePath": "sdoc/20-基本外设篇/35-SPI/LV010-W25QXXX简介.md"
        },
        "wordCount": 1992,
        "readingTime": "8.3m",
        "frontmatter": {
          "title": "LV010-W25QXXX简介",
          "date": {},
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/spi/126b0950f64a0b5a3fbcba93",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "a3fbcba93d1642329a28cddcb65ad8e8",
            "useduuid": "a3fbcba93"
          }
        }
      },
      {
        "fileInfo": {
          "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/35-SPI/LV015-SPI读写W25QXXX实例.md",
          "relativePath": "sdoc/20-基本外设篇/35-SPI/LV015-SPI读写W25QXXX实例.md"
        },
        "wordCount": 3847,
        "readingTime": "15.8m",
        "frontmatter": {
          "title": "LV015-SPI读写W25QXXX实例",
          "date": {},
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/spi/126b0950f849211ff053e7ff",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "ff053e7ff3e247358beec3bab1ba61de",
            "useduuid": "ff053e7ff"
          }
        }
      },
      {
        "fileInfo": {
          "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/35-SPI/index.md",
          "relativePath": "sdoc/20-基本外设篇/35-SPI/index.md"
        },
        "wordCount": 8,
        "readingTime": "1m",
        "frontmatter": {
          "title": "SPI",
          "date": {},
          "permalink": "/sdoc/peripheral/spi/126b0950f46d2b67951e2c74",
          "icon": "laptop-code",
          "layout": "page",
          "catalogue": true,
          "path": "sdoc/20-基本外设篇/35-SPI",
          "tdoc": {
            "detailDate": {},
            "fulluuid": "7951e2c74bbb412f871c21c97dd11cce",
            "useduuid": "7951e2c74"
          }
        }
      },
      {
        "fileInfo": {
          "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/40-DMA/LV001-DMA简介.md",
          "relativePath": "sdoc/20-基本外设篇/40-DMA/LV001-DMA简介.md"
        },
        "wordCount": 4155,
        "readingTime": "15.5m",
        "frontmatter": {
          "title": "LV001-DMA简介",
          "date": {},
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/dma/126b0950fbc52669af52caac",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "9af52caac91c42b1b28d2e09c22f8d43",
            "useduuid": "9af52caac"
          }
        }
      },
      {
        "fileInfo": {
          "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/40-DMA/LV010-DMA使用实例.md",
          "relativePath": "sdoc/20-基本外设篇/40-DMA/LV010-DMA使用实例.md"
        },
        "wordCount": 2001,
        "readingTime": "8m",
        "frontmatter": {
          "title": "LV010-DMA使用实例",
          "date": {},
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/dma/126b0950fc960317c7b64826",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "7c7b6482620b4698a5eac4b6e449f631",
            "useduuid": "7c7b64826"
          }
        }
      },
      {
        "fileInfo": {
          "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/40-DMA/index.md",
          "relativePath": "sdoc/20-基本外设篇/40-DMA/index.md"
        },
        "wordCount": 8,
        "readingTime": "1m",
        "frontmatter": {
          "title": "DMA",
          "date": {},
          "permalink": "/sdoc/peripheral/dma/126b0950fb76332c67477449",
          "icon": "laptop-code",
          "layout": "page",
          "catalogue": true,
          "path": "sdoc/20-基本外设篇/40-DMA",
          "tdoc": {
            "detailDate": {},
            "fulluuid": "c6747744928e4d42982cdd3eab77c128",
            "useduuid": "c67477449"
          }
        }
      },
      {
        "fileInfo": {
          "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/50-SDIO/LV001-SD卡简介.md",
          "relativePath": "sdoc/20-基本外设篇/50-SDIO/LV001-SD卡简介.md"
        },
        "wordCount": 3570,
        "readingTime": "14.4m",
        "frontmatter": {
          "title": "LV001-SD卡简介",
          "date": {},
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/sdio/126b0950fe110bc81c4d2fd3",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "81c4d2fd3b3049a1a63dd12e12b5a3fa",
            "useduuid": "81c4d2fd3"
          }
        }
      },
      {
        "fileInfo": {
          "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/50-SDIO/LV015-SD卡的操作.md",
          "relativePath": "sdoc/20-基本外设篇/50-SDIO/LV015-SD卡的操作.md"
        },
        "wordCount": 7038,
        "readingTime": "28.9m",
        "frontmatter": {
          "title": "LV015-SD卡的操作",
          "date": {},
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/sdio/126b0950ff013d660d235356",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "60d235356a8a41c6b5be0b1b1d22ed03",
            "useduuid": "60d235356"
          }
        }
      },
      {
        "fileInfo": {
          "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/50-SDIO/LV020-STM32的SDIO.md",
          "relativePath": "sdoc/20-基本外设篇/50-SDIO/LV020-STM32的SDIO.md"
        },
        "wordCount": 5457,
        "readingTime": "21.2m",
        "frontmatter": {
          "title": "LV020-STM32的SDIO",
          "date": {},
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/sdio/126b0951000d2a75b964fa55",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "5b964fa55b1c49f2849632ac18e58758",
            "useduuid": "5b964fa55"
          }
        }
      },
      {
        "fileInfo": {
          "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/50-SDIO/LV025-读写SD卡实例.md",
          "relativePath": "sdoc/20-基本外设篇/50-SDIO/LV025-读写SD卡实例.md"
        },
        "wordCount": 4111,
        "readingTime": "17.4m",
        "frontmatter": {
          "title": "LV025-读写SD卡实例",
          "date": {},
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/sdio/126b095100d21af60c8ed17e",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "60c8ed17e9a9490aaf1efe2014ac5b67",
            "useduuid": "60c8ed17e"
          }
        }
      },
      {
        "fileInfo": {
          "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/50-SDIO/index.md",
          "relativePath": "sdoc/20-基本外设篇/50-SDIO/index.md"
        },
        "wordCount": 8,
        "readingTime": "1m",
        "frontmatter": {
          "title": "SDIO",
          "date": {},
          "permalink": "/sdoc/peripheral/sdio/126b0950fdc523d3bcab509d",
          "icon": "laptop-code",
          "layout": "page",
          "catalogue": true,
          "path": "sdoc/20-基本外设篇/50-SDIO",
          "tdoc": {
            "detailDate": {},
            "fulluuid": "3bcab509d82341eba54afcd45f4e9133",
            "useduuid": "3bcab509d"
          }
        }
      },
      {
        "fileInfo": {
          "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/55-RTC时钟/LV001-RTC简介.md",
          "relativePath": "sdoc/20-基本外设篇/55-RTC时钟/LV001-RTC简介.md"
        },
        "wordCount": 4862,
        "readingTime": "18.7m",
        "frontmatter": {
          "title": "LV001-RTC简介",
          "date": {},
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/rtc/126b09511eac35920a3f191c",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "20a3f191c6054d8d9f5fd53ff7b809de",
            "useduuid": "20a3f191c"
          }
        }
      },
      {
        "fileInfo": {
          "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/55-RTC时钟/index.md",
          "relativePath": "sdoc/20-基本外设篇/55-RTC时钟/index.md"
        },
        "wordCount": 10,
        "readingTime": "1m",
        "frontmatter": {
          "title": "RTC时钟",
          "date": {},
          "permalink": "/sdoc/peripheral/rtc/126b09511e9e39a6b6fcf250",
          "icon": "laptop-code",
          "layout": "page",
          "catalogue": true,
          "path": "sdoc/20-基本外设篇/55-RTC时钟",
          "tdoc": {
            "detailDate": {},
            "fulluuid": "6b6fcf250ef34e2fb8b9f536531e098b",
            "useduuid": "6b6fcf250"
          }
        }
      },
      {
        "fileInfo": {
          "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/60-USB/LV001-USB简介.md",
          "relativePath": "sdoc/20-基本外设篇/60-USB/LV001-USB简介.md"
        },
        "wordCount": 2486,
        "readingTime": "9.2m",
        "frontmatter": {
          "title": "LV001-USB简介",
          "date": {},
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/usb/126b095167b12a8376012928",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "3760129282bc45c68e9217915df4f46b",
            "useduuid": 376012928
          }
        }
      },
      {
        "fileInfo": {
          "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/60-USB/LV010-USB读卡器实例.md",
          "relativePath": "sdoc/20-基本外设篇/60-USB/LV010-USB读卡器实例.md"
        },
        "wordCount": 1904,
        "readingTime": "7.3m",
        "frontmatter": {
          "title": "LV010-USB读卡器实例",
          "date": {},
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/usb/126b095168b91d9fad5c2a07",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "fad5c2a07ce14efe93e887b24a93fb47",
            "useduuid": "fad5c2a07"
          }
        }
      },
      {
        "fileInfo": {
          "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/60-USB/index.md",
          "relativePath": "sdoc/20-基本外设篇/60-USB/index.md"
        },
        "wordCount": 8,
        "readingTime": "1m",
        "frontmatter": {
          "title": "USB",
          "date": {},
          "permalink": "/sdoc/peripheral/usb/126b095167923a1447b3ed2c",
          "icon": "laptop-code",
          "layout": "page",
          "catalogue": true,
          "path": "sdoc/20-基本外设篇/60-USB",
          "tdoc": {
            "detailDate": {},
            "fulluuid": "447b3ed2ca13424ea9206821ce3ccd80",
            "useduuid": "447b3ed2c"
          }
        }
      },
      {
        "fileInfo": {
          "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/20-基本外设篇/index.md",
          "relativePath": "sdoc/20-基本外设篇/index.md"
        },
        "wordCount": 12,
        "readingTime": "1m",
        "frontmatter": {
          "title": "基本外设篇",
          "date": {},
          "permalink": "/sdoc/peripherals/126b08ba0bf0218c6b2c4985",
          "icon": "laptop-code",
          "layout": "page",
          "catalogue": true,
          "path": "sdoc/20-基本外设篇",
          "tdoc": {
            "detailDate": {},
            "fulluuid": "c6b2c49855c24262806d8a83d515c79e",
            "useduuid": "c6b2c4985"
          }
        }
      },
      {
        "fileInfo": {
          "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/30-进阶篇/01-文件系统/LV001-文件系统简介.md",
          "relativePath": "sdoc/30-进阶篇/01-文件系统/LV001-文件系统简介.md"
        },
        "wordCount": 1602,
        "readingTime": "5.9m",
        "frontmatter": {
          "title": "LV001-文件系统简介",
          "date": {},
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/advanced-chapter/file-system/126b0951040033e78ccbca10",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "78ccbca106d046ecaee2de5e4c1f5766",
            "useduuid": "78ccbca10"
          }
        }
      },
      {
        "fileInfo": {
          "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/30-进阶篇/01-文件系统/LV010-FATFS简介.md",
          "relativePath": "sdoc/30-进阶篇/01-文件系统/LV010-FATFS简介.md"
        },
        "wordCount": 5567,
        "readingTime": "22.6m",
        "frontmatter": {
          "title": "LV010-FATFS简介",
          "date": {},
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/advanced-chapter/file-system/126b095105912fc87e8eb3f7",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "87e8eb3f76b14573a4c0856bf2257669",
            "useduuid": "87e8eb3f7"
          }
        }
      },
      {
        "fileInfo": {
          "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/30-进阶篇/01-文件系统/LV015-基于SPIFLASH移植FATFS.md",
          "relativePath": "sdoc/30-进阶篇/01-文件系统/LV015-基于SPIFLASH移植FATFS.md"
        },
        "wordCount": 4149,
        "readingTime": "17.8m",
        "frontmatter": {
          "title": "LV015-基于SPIFLASH移植FATFS",
          "date": {},
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/advanced-chapter/file-system/126b0951078a03391bda267a",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "91bda267a4934867a0b05673bbc3ef13",
            "useduuid": "91bda267a"
          }
        }
      },
      {
        "fileInfo": {
          "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/30-进阶篇/01-文件系统/LV020-基于SD卡移植FATFS.md",
          "relativePath": "sdoc/30-进阶篇/01-文件系统/LV020-基于SD卡移植FATFS.md"
        },
        "wordCount": 2226,
        "readingTime": "10.3m",
        "frontmatter": {
          "title": "LV015-基于SD卡移植FATFS",
          "date": {},
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/advanced-chapter/file-system/126b09511b702501a47f120c",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "1a47f120cd8c41b6ab06d05da2ace352",
            "useduuid": "1a47f120c"
          }
        }
      },
      {
        "fileInfo": {
          "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/30-进阶篇/01-文件系统/LV025-FATFS中自定义的一些函数.md",
          "relativePath": "sdoc/30-进阶篇/01-文件系统/LV025-FATFS中自定义的一些函数.md"
        },
        "wordCount": 443,
        "readingTime": "2m",
        "frontmatter": {
          "title": "LV025-FATFS中自定义的一些函数",
          "date": {},
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/advanced-chapter/file-system/126b09511d060b54b7d725e9",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "4b7d725e9ba54c78945189a9341e3b34",
            "useduuid": "4b7d725e9"
          }
        }
      },
      {
        "fileInfo": {
          "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/30-进阶篇/01-文件系统/index.md",
          "relativePath": "sdoc/30-进阶篇/01-文件系统/index.md"
        },
        "wordCount": 11,
        "readingTime": "1m",
        "frontmatter": {
          "title": "文件系统",
          "date": {},
          "permalink": "/sdoc/advanced-chapter/file-system/126b095103f1237157cc07c6",
          "icon": "laptop-code",
          "layout": "page",
          "catalogue": true,
          "path": "sdoc/30-进阶篇/01-文件系统",
          "tdoc": {
            "detailDate": {},
            "fulluuid": "157cc07c616b492a9d5f73ec4a739bbd",
            "useduuid": "157cc07c6"
          }
        }
      },
      {
        "fileInfo": {
          "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/30-进阶篇/02-ESP8266/LV001-ESP8266模块简介.md",
          "relativePath": "sdoc/30-进阶篇/02-ESP8266/LV001-ESP8266模块简介.md"
        },
        "wordCount": 2444,
        "readingTime": "10m",
        "frontmatter": {
          "title": "LV001-ESP8266模块简介",
          "date": {},
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/advanced-chapter/esp8266/126b0951502d346ca9aa7929",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "ca9aa79298244701abe40ba6e8a3afb0",
            "useduuid": "ca9aa7929"
          }
        }
      },
      {
        "fileInfo": {
          "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/30-进阶篇/02-ESP8266/LV010-AT指令.md",
          "relativePath": "sdoc/30-进阶篇/02-ESP8266/LV010-AT指令.md"
        },
        "wordCount": 5206,
        "readingTime": "23.7m",
        "frontmatter": {
          "title": "LV010-AT指令",
          "date": {},
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/advanced-chapter/esp8266/126b095151472d621a6605a9",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "21a6605a91b34e7b87e3081f66267021",
            "useduuid": "21a6605a9"
          }
        }
      },
      {
        "fileInfo": {
          "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/30-进阶篇/02-ESP8266/LV015-ESP8266固件烧录.md",
          "relativePath": "sdoc/30-进阶篇/02-ESP8266/LV015-ESP8266固件烧录.md"
        },
        "wordCount": 3571,
        "readingTime": "13.8m",
        "frontmatter": {
          "title": "LV015-ESP8266固件烧录",
          "date": {},
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/advanced-chapter/esp8266/126b0951520814de18399844",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "e18399844bf344e3bb81cdc33db73395",
            "useduuid": "e18399844"
          }
        }
      },
      {
        "fileInfo": {
          "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/30-进阶篇/02-ESP8266/LV020-ATK-MW8266模块使用实例.md",
          "relativePath": "sdoc/30-进阶篇/02-ESP8266/LV020-ATK-MW8266模块使用实例.md"
        },
        "wordCount": 1473,
        "readingTime": "5.8m",
        "frontmatter": {
          "title": "LV020-ATK-ESP8266使用实例",
          "date": {},
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/advanced-chapter/esp8266/126b095152fb04ead8380cb5",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "ad8380cb587c446592ab6fa1ae7318fd",
            "useduuid": "ad8380cb5"
          }
        }
      },
      {
        "fileInfo": {
          "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/30-进阶篇/02-ESP8266/index.md",
          "relativePath": "sdoc/30-进阶篇/02-ESP8266/index.md"
        },
        "wordCount": 8,
        "readingTime": "1m",
        "frontmatter": {
          "title": "ESP8266",
          "date": {},
          "permalink": "/sdoc/advanced-chapter/esp8266/126b0951501d17f37e2b0091",
          "icon": "laptop-code",
          "layout": "page",
          "catalogue": true,
          "path": "sdoc/30-进阶篇/02-ESP8266",
          "tdoc": {
            "detailDate": {},
            "fulluuid": "37e2b0091b834c029cb64e44d50ac973",
            "useduuid": "37e2b0091"
          }
        }
      },
      {
        "fileInfo": {
          "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/30-进阶篇/03-OV7725/LV001-ATK-MC6625F模块简介.md",
          "relativePath": "sdoc/30-进阶篇/03-OV7725/LV001-ATK-MC6625F模块简介.md"
        },
        "wordCount": 656,
        "readingTime": "2.6m",
        "frontmatter": {
          "title": "LV001-ATK-MC6625F模块简介",
          "date": {},
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/advanced-chapter/ov7725/126b09516b08191a7bd0fd02",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "a7bd0fd0290345cfae6ad4ff74f043f7",
            "useduuid": "a7bd0fd02"
          }
        }
      },
      {
        "fileInfo": {
          "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/30-进阶篇/03-OV7725/LV010-SCCB协议简介.md",
          "relativePath": "sdoc/30-进阶篇/03-OV7725/LV010-SCCB协议简介.md"
        },
        "wordCount": 1038,
        "readingTime": "3.8m",
        "frontmatter": {
          "title": "LV010-SCCB协议简介",
          "date": {},
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/advanced-chapter/ov7725/126b09516b6c2fed98855250",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "d9885525026649bdb9a31be28b79a722",
            "useduuid": "d98855250"
          }
        }
      },
      {
        "fileInfo": {
          "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/30-进阶篇/03-OV7725/LV020-OV7725简介.md",
          "relativePath": "sdoc/30-进阶篇/03-OV7725/LV020-OV7725简介.md"
        },
        "wordCount": 2954,
        "readingTime": "11.1m",
        "frontmatter": {
          "title": "LV020-OV7725简介",
          "date": {},
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/advanced-chapter/ov7725/126b09516bd03c413cd356e8",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "13cd356e84f447f3b52ee1a287368dce",
            "useduuid": "13cd356e8"
          }
        }
      },
      {
        "fileInfo": {
          "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/30-进阶篇/03-OV7725/index.md",
          "relativePath": "sdoc/30-进阶篇/03-OV7725/index.md"
        },
        "wordCount": 8,
        "readingTime": "1m",
        "frontmatter": {
          "title": "OV7725",
          "date": {},
          "permalink": "/sdoc/advanced-chapter/ov7725/126b09516acd106d46ca7dbf",
          "icon": "laptop-code",
          "layout": "page",
          "catalogue": true,
          "path": "sdoc/30-进阶篇/03-OV7725",
          "tdoc": {
            "detailDate": {},
            "fulluuid": "d46ca7dbfa264fd69fea19958049cbac",
            "useduuid": "d46ca7dbf"
          }
        }
      },
      {
        "fileInfo": {
          "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/30-进阶篇/04-显示屏/01-OLED/LV001-OLED简介.md",
          "relativePath": "sdoc/30-进阶篇/04-显示屏/01-OLED/LV001-OLED简介.md"
        },
        "wordCount": 3033,
        "readingTime": "12.2m",
        "frontmatter": {
          "title": "LV001-OLED简介",
          "date": {},
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/advanced-chapter/display/oled/126b09516d6c2a948085516b",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "48085516b89044b2a637057cfaac3f5c",
            "useduuid": "48085516b"
          }
        }
      },
      {
        "fileInfo": {
          "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/30-进阶篇/04-显示屏/01-OLED/LV010-8080时序驱动OLED.md",
          "relativePath": "sdoc/30-进阶篇/04-显示屏/01-OLED/LV010-8080时序驱动OLED.md"
        },
        "wordCount": 1975,
        "readingTime": "8.7m",
        "frontmatter": {
          "title": "LV010-8080时序驱动OLED",
          "date": {},
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/advanced-chapter/display/oled/126b09517279099247b327e5",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "247b327e5f1747919749deb8038e066d",
            "useduuid": "247b327e5"
          }
        }
      },
      {
        "fileInfo": {
          "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/30-进阶篇/04-显示屏/01-OLED/index.md",
          "relativePath": "sdoc/30-进阶篇/04-显示屏/01-OLED/index.md"
        },
        "wordCount": 8,
        "readingTime": "1m",
        "frontmatter": {
          "title": "OLED",
          "date": {},
          "permalink": "/sdoc/advanced-chapter/display/oled/126b09516d232f134becda6b",
          "icon": "laptop-code",
          "layout": "page",
          "catalogue": true,
          "path": "sdoc/30-进阶篇/04-显示屏/01-OLED",
          "tdoc": {
            "detailDate": {},
            "fulluuid": "34becda6b9404c708c78adb8d095fd35",
            "useduuid": "34becda6b"
          }
        }
      },
      {
        "fileInfo": {
          "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/30-进阶篇/04-显示屏/02-LCD/LV001-LCD简介.md",
          "relativePath": "sdoc/30-进阶篇/04-显示屏/02-LCD/LV001-LCD简介.md"
        },
        "wordCount": 5119,
        "readingTime": "20m",
        "frontmatter": {
          "title": "LV001-LCD简介",
          "date": {},
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/advanced-chapter/display/lcd/126b0951740b3b3a3f69973e",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "a3f69973ef4142428240aba5719aeeb0",
            "useduuid": "a3f69973e"
          }
        }
      },
      {
        "fileInfo": {
          "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/30-进阶篇/04-显示屏/02-LCD/LV010-液晶控制原理.md",
          "relativePath": "sdoc/30-进阶篇/04-显示屏/02-LCD/LV010-液晶控制原理.md"
        },
        "wordCount": 4461,
        "readingTime": "16.5m",
        "frontmatter": {
          "title": "LV010-液晶控制原理",
          "date": {},
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/advanced-chapter/display/lcd/126b0951760b03320ea5c5be",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "20ea5c5be93445288eac3b57c2e84f66",
            "useduuid": "20ea5c5be"
          }
        }
      },
      {
        "fileInfo": {
          "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/30-进阶篇/04-显示屏/02-LCD/LV015-ATK-MD0280模块.md",
          "relativePath": "sdoc/30-进阶篇/04-显示屏/02-LCD/LV015-ATK-MD0280模块.md"
        },
        "wordCount": 1428,
        "readingTime": "5.9m",
        "frontmatter": {
          "title": "LV015-ATK-MD0280模块",
          "date": {},
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/advanced-chapter/display/lcd/126b095237661ce983ad47b1",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "983ad47b1ccb49c59396418e90556b0c",
            "useduuid": "983ad47b1"
          }
        }
      },
      {
        "fileInfo": {
          "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/30-进阶篇/04-显示屏/02-LCD/LV016-IL9341简介.md",
          "relativePath": "sdoc/30-进阶篇/04-显示屏/02-LCD/LV016-IL9341简介.md"
        },
        "wordCount": 5985,
        "readingTime": "25m",
        "frontmatter": {
          "title": "LV016-IL9341简介",
          "date": {},
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/advanced-chapter/display/lcd/126b095238ef12080fa9e2fc",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "80fa9e2fc1c846ac9bfafe695ffc6b7d",
            "useduuid": "80fa9e2fc"
          }
        }
      },
      {
        "fileInfo": {
          "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/30-进阶篇/04-显示屏/02-LCD/LV020-FSMC模拟8080时序.md",
          "relativePath": "sdoc/30-进阶篇/04-显示屏/02-LCD/LV020-FSMC模拟8080时序.md"
        },
        "wordCount": 3655,
        "readingTime": "14m",
        "frontmatter": {
          "title": "LV020-FSMC模拟8080时序",
          "date": {},
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/advanced-chapter/display/lcd/126b09523c371707f0bd772f",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "7f0bd772fcbd424ab2f5aaf94abf65ff",
            "useduuid": "7f0bd772f"
          }
        }
      },
      {
        "fileInfo": {
          "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/30-进阶篇/04-显示屏/02-LCD/LV025-LCD显示实例.md",
          "relativePath": "sdoc/30-进阶篇/04-显示屏/02-LCD/LV025-LCD显示实例.md"
        },
        "wordCount": 9443,
        "readingTime": "41.7m",
        "frontmatter": {
          "title": "LV025-LCD显示实例",
          "date": {},
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/advanced-chapter/display/lcd/126b095253d9037570d31d42",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "570d31d42d894e208a1fb9d5c484e257",
            "useduuid": "570d31d42"
          }
        }
      },
      {
        "fileInfo": {
          "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/30-进阶篇/04-显示屏/02-LCD/LV030-字符编码简介.md",
          "relativePath": "sdoc/30-进阶篇/04-显示屏/02-LCD/LV030-字符编码简介.md"
        },
        "wordCount": 8631,
        "readingTime": "32.8m",
        "frontmatter": {
          "title": "LV030-字符编码基础",
          "date": {},
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/advanced-chapter/display/lcd/126b095255800a53f67e99cc",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "3f67e99cc1774328be76eff3ae429948",
            "useduuid": "3f67e99cc"
          }
        }
      },
      {
        "fileInfo": {
          "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/30-进阶篇/04-显示屏/02-LCD/LV035-中英文的显示.md",
          "relativePath": "sdoc/30-进阶篇/04-显示屏/02-LCD/LV035-中英文的显示.md"
        },
        "wordCount": 8489,
        "readingTime": "32.9m",
        "frontmatter": {
          "title": "LV035-中英文的显示",
          "date": {},
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/advanced-chapter/display/lcd/126b0952576b3df0941e36ed",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "0941e36ed35b4da7a71acace5c8d2e0d",
            "useduuid": "0941e36ed"
          }
        }
      },
      {
        "fileInfo": {
          "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/30-进阶篇/04-显示屏/02-LCD/LV040-实现任意大小字模.md",
          "relativePath": "sdoc/30-进阶篇/04-显示屏/02-LCD/LV040-实现任意大小字模.md"
        },
        "wordCount": 2469,
        "readingTime": "11.2m",
        "frontmatter": {
          "title": "LV040-实现任意大小字模",
          "date": {},
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/advanced-chapter/display/lcd/126b09525e7116330989fbcc",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "30989fbcc8354f6baad6455294de0120",
            "useduuid": "30989fbcc"
          }
        }
      },
      {
        "fileInfo": {
          "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/30-进阶篇/04-显示屏/02-LCD/index.md",
          "relativePath": "sdoc/30-进阶篇/04-显示屏/02-LCD/index.md"
        },
        "wordCount": 8,
        "readingTime": "1m",
        "frontmatter": {
          "title": "LCD",
          "date": {},
          "permalink": "/sdoc/advanced-chapter/display/lcd/126b09516d2f200db818e12a",
          "icon": "laptop-code",
          "layout": "page",
          "catalogue": true,
          "path": "sdoc/30-进阶篇/04-显示屏/02-LCD",
          "tdoc": {
            "detailDate": {},
            "fulluuid": "db818e12a8494edaa70aee62d83a762a",
            "useduuid": "db818e12a"
          }
        }
      },
      {
        "fileInfo": {
          "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/30-进阶篇/04-显示屏/index.md",
          "relativePath": "sdoc/30-进阶篇/04-显示屏/index.md"
        },
        "wordCount": 10,
        "readingTime": "1m",
        "frontmatter": {
          "title": "显示屏",
          "date": {},
          "permalink": "/sdoc/advanced-chapter/display/126b09516d1d204fc8501804",
          "icon": "laptop-code",
          "layout": "page",
          "catalogue": true,
          "path": "sdoc/30-进阶篇/04-显示屏",
          "tdoc": {
            "detailDate": {},
            "fulluuid": "fc8501804f684f2ab512b2ea7ec7d696",
            "useduuid": "fc8501804"
          }
        }
      },
      {
        "fileInfo": {
          "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/30-进阶篇/90-FreeRTOS/01-FreeRTOS简介/LV001-FreeRTOS简介.md",
          "relativePath": "sdoc/30-进阶篇/90-FreeRTOS/01-FreeRTOS简介/LV001-FreeRTOS简介.md"
        },
        "wordCount": 3772,
        "readingTime": "13.5m",
        "frontmatter": {
          "title": "LV001-FreeRTOS简介",
          "date": {},
          "icon": "famicons:logo-markdown",
          "permalink": "/docs/126b096ee4d10f3bb564b607",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "bb564b607089439882d4247b57282de9",
            "useduuid": "bb564b607"
          }
        }
      },
      {
        "fileInfo": {
          "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/30-进阶篇/90-FreeRTOS/01-FreeRTOS简介/index.md",
          "relativePath": "sdoc/30-进阶篇/90-FreeRTOS/01-FreeRTOS简介/index.md"
        },
        "wordCount": 10,
        "readingTime": "1m",
        "frontmatter": {
          "title": "FreeRTOS简介",
          "date": {},
          "permalink": "/docs/126b096ee4bd15f7d94c92d0",
          "icon": "laptop-code",
          "layout": "page",
          "catalogue": true,
          "path": "sdoc/30-进阶篇/90-FreeRTOS/01-FreeRTOS简介",
          "tdoc": {
            "detailDate": {},
            "fulluuid": "7d94c92d0b5b4e879dd31eeca6ac7ba1",
            "useduuid": "7d94c92d0"
          }
        }
      },
      {
        "fileInfo": {
          "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/30-进阶篇/90-FreeRTOS/index.md",
          "relativePath": "sdoc/30-进阶篇/90-FreeRTOS/index.md"
        },
        "wordCount": 8,
        "readingTime": "1m",
        "frontmatter": {
          "title": "FreeRTOS",
          "date": {},
          "permalink": "/docs/126b096ee490286163a5b271",
          "icon": "laptop-code",
          "layout": "page",
          "catalogue": true,
          "path": "sdoc/30-进阶篇/90-FreeRTOS",
          "tdoc": {
            "detailDate": {},
            "fulluuid": "163a5b271dee4fecab80d711b1426cf5",
            "useduuid": "163a5b271"
          }
        }
      },
      {
        "fileInfo": {
          "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/30-进阶篇/index.md",
          "relativePath": "sdoc/30-进阶篇/index.md"
        },
        "wordCount": 10,
        "readingTime": "1m",
        "frontmatter": {
          "title": "进阶篇",
          "date": {},
          "permalink": "/sdoc/advanced-chapter/126b095103e933d0da8853e8",
          "icon": "laptop-code",
          "layout": "page",
          "catalogue": true,
          "path": "sdoc/30-进阶篇",
          "tdoc": {
            "detailDate": {},
            "fulluuid": "0da8853e8a9643dd8dfe55a10854bb82",
            "useduuid": "0da8853e8"
          }
        }
      },
      {
        "fileInfo": {
          "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/60-通信专题/01-I2C协议/LV001-I2C简介.md",
          "relativePath": "sdoc/60-通信专题/01-I2C协议/LV001-I2C简介.md"
        },
        "wordCount": 6512,
        "readingTime": "24.1m",
        "frontmatter": {
          "title": "LV001-I2C简介",
          "date": {},
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/communication/i2c/126b09043f2d250b963bfb0d",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "b963bfb0deb74fcaa8f060b7b084d3d8",
            "useduuid": "b963bfb0d"
          }
        }
      },
      {
        "fileInfo": {
          "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/60-通信专题/01-I2C协议/LV020-AT24C02实例分析.md",
          "relativePath": "sdoc/60-通信专题/01-I2C协议/LV020-AT24C02实例分析.md"
        },
        "wordCount": 600,
        "readingTime": "2.2m",
        "frontmatter": {
          "title": "LV020-AT24C02实例分析",
          "date": {},
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/communication/i2c/126b09043fca31869028172d",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "69028172daa144dcbab34851329c3348",
            "useduuid": "69028172d"
          }
        }
      },
      {
        "fileInfo": {
          "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/60-通信专题/01-I2C协议/index.md",
          "relativePath": "sdoc/60-通信专题/01-I2C协议/index.md"
        },
        "wordCount": 10,
        "readingTime": "1m",
        "frontmatter": {
          "title": "I2C协议",
          "date": {},
          "permalink": "/sdoc/communication/i2c/126b09043eec0234d430a608",
          "icon": "laptop-code",
          "layout": "page",
          "catalogue": true,
          "path": "sdoc/60-通信专题/01-I2C协议",
          "tdoc": {
            "detailDate": {},
            "fulluuid": "4d430a60859c4c8db0b119b963b97f73",
            "useduuid": "4d430a608"
          }
        }
      },
      {
        "fileInfo": {
          "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/60-通信专题/10-串口/LV001-串口通信简介.md",
          "relativePath": "sdoc/60-通信专题/10-串口/LV001-串口通信简介.md"
        },
        "wordCount": 2509,
        "readingTime": "9.5m",
        "frontmatter": {
          "title": "LV001-串口通信简介",
          "date": {},
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/communication/serial-port/126b0904421d06db7b197798",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "b7b197798fd74f3fb97abd23e12eb7bc",
            "useduuid": "b7b197798"
          }
        }
      },
      {
        "fileInfo": {
          "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/60-通信专题/10-串口/LV020-RS232简介.md",
          "relativePath": "sdoc/60-通信专题/10-串口/LV020-RS232简介.md"
        },
        "wordCount": 700,
        "readingTime": "2.7m",
        "frontmatter": {
          "title": "LV020-RS232简介",
          "date": {},
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/communication/serial-port/126b0950f26b1afbd6db3885",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "bd6db38856214d8db0d0697d94245e7d",
            "useduuid": "bd6db3885"
          }
        }
      },
      {
        "fileInfo": {
          "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/60-通信专题/10-串口/LV030-RS485简介.md",
          "relativePath": "sdoc/60-通信专题/10-串口/LV030-RS485简介.md"
        },
        "wordCount": 2665,
        "readingTime": "10m",
        "frontmatter": {
          "title": "LV030-RS485简介",
          "date": {},
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/communication/serial-port/126b0950f287303e7c68cbb5",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "e7c68cbb501d41a4be750e720e3a5e0a",
            "useduuid": "e7c68cbb5"
          }
        }
      },
      {
        "fileInfo": {
          "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/60-通信专题/10-串口/index.md",
          "relativePath": "sdoc/60-通信专题/10-串口/index.md"
        },
        "wordCount": 8,
        "readingTime": "1m",
        "frontmatter": {
          "title": "UART",
          "date": {},
          "permalink": "/sdoc/communication/serial-port/126b09044209398a673e2151",
          "icon": "laptop-code",
          "layout": "page",
          "catalogue": true,
          "path": "sdoc/60-通信专题/10-串口",
          "tdoc": {
            "detailDate": {},
            "fulluuid": "a673e2151ed34718be9dccfe2b5e234c",
            "useduuid": "a673e2151"
          }
        }
      },
      {
        "fileInfo": {
          "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/60-通信专题/30-SPI/LV001-SPI简介.md",
          "relativePath": "sdoc/60-通信专题/30-SPI/LV001-SPI简介.md"
        },
        "wordCount": 4214,
        "readingTime": "16.1m",
        "frontmatter": {
          "title": "LV001-SPI简介",
          "date": {},
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/communication/spi/126b0950dceb1d850b1e36d8",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "50b1e36d86eb4c0e85c11fe350fcd877",
            "useduuid": "50b1e36d8"
          }
        }
      },
      {
        "fileInfo": {
          "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/60-通信专题/30-SPI/index.md",
          "relativePath": "sdoc/60-通信专题/30-SPI/index.md"
        },
        "wordCount": 8,
        "readingTime": "1m",
        "frontmatter": {
          "title": "SPI",
          "date": {},
          "permalink": "/sdoc/communication/spi/126b0950dce32a071f087087",
          "icon": "laptop-code",
          "layout": "page",
          "catalogue": true,
          "path": "sdoc/60-通信专题/30-SPI",
          "tdoc": {
            "detailDate": {},
            "fulluuid": "71f087087eef4d75b27e4bb9dd21fceb",
            "useduuid": "71f087087"
          }
        }
      },
      {
        "fileInfo": {
          "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/60-通信专题/40-CAN/LV001-CAN通信简介.md",
          "relativePath": "sdoc/60-通信专题/40-CAN/LV001-CAN通信简介.md"
        },
        "wordCount": 3989,
        "readingTime": "14.8m",
        "frontmatter": {
          "title": "LV001-CAN通信简介",
          "date": {},
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/communication/can/126b0950f34624bdf8f7407f",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "df8f7407fc324becb0237697f4ea8f9c",
            "useduuid": "df8f7407f"
          }
        }
      },
      {
        "fileInfo": {
          "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/60-通信专题/40-CAN/index.md",
          "relativePath": "sdoc/60-通信专题/40-CAN/index.md"
        },
        "wordCount": 8,
        "readingTime": "1m",
        "frontmatter": {
          "title": "CAN",
          "date": {},
          "permalink": "/sdoc/communication/can/126b0950f33c30cca3fe3d80",
          "icon": "laptop-code",
          "layout": "page",
          "catalogue": true,
          "path": "sdoc/60-通信专题/40-CAN",
          "tdoc": {
            "detailDate": {},
            "fulluuid": "ca3fe3d80a78403389da5e3a57a70386",
            "useduuid": "ca3fe3d80"
          }
        }
      },
      {
        "fileInfo": {
          "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/60-通信专题/LV001-通信概述.md",
          "relativePath": "sdoc/60-通信专题/LV001-通信概述.md"
        },
        "wordCount": 2294,
        "readingTime": "8.3m",
        "frontmatter": {
          "title": "LV001-通信概述",
          "date": {},
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/communication/126b09043e1c12685fda3fb8",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "85fda3fb8df54e90807dd03d5831b5bf",
            "useduuid": "85fda3fb8"
          }
        }
      },
      {
        "fileInfo": {
          "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/60-通信专题/index.md",
          "relativePath": "sdoc/60-通信专题/index.md"
        },
        "wordCount": 11,
        "readingTime": "1m",
        "frontmatter": {
          "title": "通信专题",
          "date": {},
          "permalink": "/sdoc/communication/126b09043d6f181654856443",
          "icon": "laptop-code",
          "layout": "page",
          "catalogue": true,
          "path": "sdoc/60-通信专题",
          "tdoc": {
            "detailDate": {},
            "fulluuid": "654856443399493a8336ebadf4d12a42",
            "useduuid": 654856443
          }
        }
      },
      {
        "fileInfo": {
          "filePath": "/home/runner/work/scm-docs/scm-docs/src/sdoc/index.md",
          "relativePath": "sdoc/index.md"
        },
        "wordCount": 8,
        "readingTime": "1m",
        "frontmatter": {
          "title": "sdoc",
          "date": {},
          "permalink": "/sdoc/126b08a8af2414bbd46eede1",
          "icon": "laptop-code",
          "layout": "page",
          "catalogue": true,
          "path": "sdoc",
          "tdoc": {
            "detailDate": {},
            "fulluuid": "bd46eede19344c4db15a1d4f2de1abd3",
            "useduuid": "bd46eede1"
          }
        }
      }
    ],
    "lastCommitTime": "2025-10-10 22:30:04"
  },
  "demo": "hello world!mist",
  "catalogIndex": {
    "arr": {
      "create": "vitepress-plugin-permalink"
    },
    "map": {
      "sdoc/01-开发工具/01-keil/index.md": "sdoc/dev-tool/keil/126b08a8b73a3181c0cdd833.md",
      "sdoc/01-开发工具/02-STM32Cube/index.md": "sdoc/dev-tool/stm32cube/126b08aa588123a43b261847.md",
      "sdoc/01-开发工具/10-下载与调试/index.md": "sdoc/dev-tool/burn-and-debug/126b08ab150e18611433564e.md",
      "sdoc/01-开发工具/index.md": "sdoc/dev-tool/126b08a8b29007f159f1c463.md",
      "sdoc/10-基础篇/01-概述/index.md": "sdoc/basic/overview/126b08ba0e6d394d4eb563f9.md",
      "sdoc/10-基础篇/10-STM32基础/index.md": "sdoc/basic/stm32basic/126b08e5fe7229fef4ddea37.md",
      "sdoc/10-基础篇/20-STM32的启动/index.md": "sdoc/basic/stm32setup/126b08e788d3105084b556cd.md",
      "sdoc/10-基础篇/30-STM32的中断/index.md": "sdoc/basic/stm32interrupt/126b08f5722f25a054f0a4aa.md",
      "sdoc/10-基础篇/40-STM32时钟/index.md": "sdoc/basic/stm32clock/126b08f5d87c1eab6c3871dc.md",
      "sdoc/10-基础篇/50-STM32内部FLASH/index.md": "sdoc/basic/stm32flash/126b093451ee0b11abb28aa5.md",
      "sdoc/10-基础篇/60-STM32的内存/index.md": "sdoc/basic/stm32memory/126b094142e21f978c1c589e.md",
      "sdoc/10-基础篇/70-STM32电源管理/index.md": "sdoc/basic/stm32pwr/126b09513f0a17a9a28ea1f0.md",
      "sdoc/10-基础篇/index.md": "sdoc/basic/126b08ba0be902f861c0b265.md",
      "sdoc/20-基本外设篇/01-GPIO/index.md": "sdoc/peripheral/gpio/126b08e802bd2a57f9711bf1.md",
      "sdoc/20-基本外设篇/10-UART/index.md": "sdoc/peripheral/uart/126b08f60e8936153c897e51.md",
      "sdoc/20-基本外设篇/15-定时器/index.md": "sdoc/peripheral/timer/126b08f6a16a27128730debb.md",
      "sdoc/20-基本外设篇/20-看门狗/index.md": "sdoc/peripheral/watchdog/126b09043af80c9abdc4e3ef.md",
      "sdoc/20-基本外设篇/25-FSMC/01-FSMC基础/index.md": "sdoc/peripheral/fsmc/fsmc-basic/126b09248c5109dd1fe11f31.md",
      "sdoc/20-基本外设篇/25-FSMC/05-外部SRAM/index.md": "sdoc/peripheral/fsmc/sram/126b09248c59366360c72955.md",
      "sdoc/20-基本外设篇/25-FSMC/index.md": "sdoc/peripheral/fsmc/126b09248c2122169ae2fda2.md",
      "sdoc/20-基本外设篇/30-I2C/index.md": "sdoc/peripheral/i2c/126b09344bc72d87b3b3eff9.md",
      "sdoc/20-基本外设篇/35-SPI/index.md": "sdoc/peripheral/spi/126b0950f46d2b67951e2c74.md",
      "sdoc/20-基本外设篇/40-DMA/index.md": "sdoc/peripheral/dma/126b0950fb76332c67477449.md",
      "sdoc/20-基本外设篇/50-SDIO/index.md": "sdoc/peripheral/sdio/126b0950fdc523d3bcab509d.md",
      "sdoc/20-基本外设篇/55-RTC时钟/index.md": "sdoc/peripheral/rtc/126b09511e9e39a6b6fcf250.md",
      "sdoc/20-基本外设篇/60-USB/index.md": "sdoc/peripheral/usb/126b095167923a1447b3ed2c.md",
      "sdoc/20-基本外设篇/index.md": "sdoc/peripherals/126b08ba0bf0218c6b2c4985.md",
      "sdoc/30-进阶篇/01-文件系统/index.md": "sdoc/advanced-chapter/file-system/126b095103f1237157cc07c6.md",
      "sdoc/30-进阶篇/02-ESP8266/index.md": "sdoc/advanced-chapter/esp8266/126b0951501d17f37e2b0091.md",
      "sdoc/30-进阶篇/03-OV7725/index.md": "sdoc/advanced-chapter/ov7725/126b09516acd106d46ca7dbf.md",
      "sdoc/30-进阶篇/04-显示屏/01-OLED/index.md": "sdoc/advanced-chapter/display/oled/126b09516d232f134becda6b.md",
      "sdoc/30-进阶篇/04-显示屏/02-LCD/index.md": "sdoc/advanced-chapter/display/lcd/126b09516d2f200db818e12a.md",
      "sdoc/30-进阶篇/04-显示屏/index.md": "sdoc/advanced-chapter/display/126b09516d1d204fc8501804.md",
      "sdoc/30-进阶篇/90-FreeRTOS/01-FreeRTOS简介/index.md": "docs/126b096ee4bd15f7d94c92d0.md",
      "sdoc/30-进阶篇/90-FreeRTOS/index.md": "docs/126b096ee490286163a5b271.md",
      "sdoc/30-进阶篇/index.md": "sdoc/advanced-chapter/126b095103e933d0da8853e8.md",
      "sdoc/60-通信专题/01-I2C协议/index.md": "sdoc/communication/i2c/126b09043eec0234d430a608.md",
      "sdoc/60-通信专题/10-串口/index.md": "sdoc/communication/serial-port/126b09044209398a673e2151.md",
      "sdoc/60-通信专题/30-SPI/index.md": "sdoc/communication/spi/126b0950dce32a071f087087.md",
      "sdoc/60-通信专题/40-CAN/index.md": "sdoc/communication/can/126b0950f33c30cca3fe3d80.md",
      "sdoc/60-通信专题/index.md": "sdoc/communication/126b09043d6f181654856443.md",
      "sdoc/index.md": "sdoc/126b08a8af2414bbd46eede1.md"
    },
    "inv": {
      "sdoc/dev-tool/keil/126b08a8b73a3181c0cdd833.md": "sdoc/01-开发工具/01-keil/index.md",
      "sdoc/dev-tool/stm32cube/126b08aa588123a43b261847.md": "sdoc/01-开发工具/02-STM32Cube/index.md",
      "sdoc/dev-tool/burn-and-debug/126b08ab150e18611433564e.md": "sdoc/01-开发工具/10-下载与调试/index.md",
      "sdoc/dev-tool/126b08a8b29007f159f1c463.md": "sdoc/01-开发工具/index.md",
      "sdoc/basic/overview/126b08ba0e6d394d4eb563f9.md": "sdoc/10-基础篇/01-概述/index.md",
      "sdoc/basic/stm32basic/126b08e5fe7229fef4ddea37.md": "sdoc/10-基础篇/10-STM32基础/index.md",
      "sdoc/basic/stm32setup/126b08e788d3105084b556cd.md": "sdoc/10-基础篇/20-STM32的启动/index.md",
      "sdoc/basic/stm32interrupt/126b08f5722f25a054f0a4aa.md": "sdoc/10-基础篇/30-STM32的中断/index.md",
      "sdoc/basic/stm32clock/126b08f5d87c1eab6c3871dc.md": "sdoc/10-基础篇/40-STM32时钟/index.md",
      "sdoc/basic/stm32flash/126b093451ee0b11abb28aa5.md": "sdoc/10-基础篇/50-STM32内部FLASH/index.md",
      "sdoc/basic/stm32memory/126b094142e21f978c1c589e.md": "sdoc/10-基础篇/60-STM32的内存/index.md",
      "sdoc/basic/stm32pwr/126b09513f0a17a9a28ea1f0.md": "sdoc/10-基础篇/70-STM32电源管理/index.md",
      "sdoc/basic/126b08ba0be902f861c0b265.md": "sdoc/10-基础篇/index.md",
      "sdoc/peripheral/gpio/126b08e802bd2a57f9711bf1.md": "sdoc/20-基本外设篇/01-GPIO/index.md",
      "sdoc/peripheral/uart/126b08f60e8936153c897e51.md": "sdoc/20-基本外设篇/10-UART/index.md",
      "sdoc/peripheral/timer/126b08f6a16a27128730debb.md": "sdoc/20-基本外设篇/15-定时器/index.md",
      "sdoc/peripheral/watchdog/126b09043af80c9abdc4e3ef.md": "sdoc/20-基本外设篇/20-看门狗/index.md",
      "sdoc/peripheral/fsmc/fsmc-basic/126b09248c5109dd1fe11f31.md": "sdoc/20-基本外设篇/25-FSMC/01-FSMC基础/index.md",
      "sdoc/peripheral/fsmc/sram/126b09248c59366360c72955.md": "sdoc/20-基本外设篇/25-FSMC/05-外部SRAM/index.md",
      "sdoc/peripheral/fsmc/126b09248c2122169ae2fda2.md": "sdoc/20-基本外设篇/25-FSMC/index.md",
      "sdoc/peripheral/i2c/126b09344bc72d87b3b3eff9.md": "sdoc/20-基本外设篇/30-I2C/index.md",
      "sdoc/peripheral/spi/126b0950f46d2b67951e2c74.md": "sdoc/20-基本外设篇/35-SPI/index.md",
      "sdoc/peripheral/dma/126b0950fb76332c67477449.md": "sdoc/20-基本外设篇/40-DMA/index.md",
      "sdoc/peripheral/sdio/126b0950fdc523d3bcab509d.md": "sdoc/20-基本外设篇/50-SDIO/index.md",
      "sdoc/peripheral/rtc/126b09511e9e39a6b6fcf250.md": "sdoc/20-基本外设篇/55-RTC时钟/index.md",
      "sdoc/peripheral/usb/126b095167923a1447b3ed2c.md": "sdoc/20-基本外设篇/60-USB/index.md",
      "sdoc/peripherals/126b08ba0bf0218c6b2c4985.md": "sdoc/20-基本外设篇/index.md",
      "sdoc/advanced-chapter/file-system/126b095103f1237157cc07c6.md": "sdoc/30-进阶篇/01-文件系统/index.md",
      "sdoc/advanced-chapter/esp8266/126b0951501d17f37e2b0091.md": "sdoc/30-进阶篇/02-ESP8266/index.md",
      "sdoc/advanced-chapter/ov7725/126b09516acd106d46ca7dbf.md": "sdoc/30-进阶篇/03-OV7725/index.md",
      "sdoc/advanced-chapter/display/oled/126b09516d232f134becda6b.md": "sdoc/30-进阶篇/04-显示屏/01-OLED/index.md",
      "sdoc/advanced-chapter/display/lcd/126b09516d2f200db818e12a.md": "sdoc/30-进阶篇/04-显示屏/02-LCD/index.md",
      "sdoc/advanced-chapter/display/126b09516d1d204fc8501804.md": "sdoc/30-进阶篇/04-显示屏/index.md",
      "docs/126b096ee4bd15f7d94c92d0.md": "sdoc/30-进阶篇/90-FreeRTOS/01-FreeRTOS简介/index.md",
      "docs/126b096ee490286163a5b271.md": "sdoc/30-进阶篇/90-FreeRTOS/index.md",
      "sdoc/advanced-chapter/126b095103e933d0da8853e8.md": "sdoc/30-进阶篇/index.md",
      "sdoc/communication/i2c/126b09043eec0234d430a608.md": "sdoc/60-通信专题/01-I2C协议/index.md",
      "sdoc/communication/serial-port/126b09044209398a673e2151.md": "sdoc/60-通信专题/10-串口/index.md",
      "sdoc/communication/spi/126b0950dce32a071f087087.md": "sdoc/60-通信专题/30-SPI/index.md",
      "sdoc/communication/can/126b0950f33c30cca3fe3d80.md": "sdoc/60-通信专题/40-CAN/index.md",
      "sdoc/communication/126b09043d6f181654856443.md": "sdoc/60-通信专题/index.md",
      "sdoc/126b08a8af2414bbd46eede1.md": "sdoc/index.md"
    }
  },
  "catalogues": {
    "arr": [
      {
        "filePath": "sdoc/01-开发工具/01-keil/index",
        "path": "sdoc/01-开发工具/01-keil",
        "catalogues": [
          {
            "title": "LV001-keil简介",
            "url": "/sdoc/dev-tool/keil/126b08a8b79e2ecaa634dd81.html",
            "frontmatter": {
              "title": "LV001-keil简介",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/dev-tool/keil/126b08a8b79e2ecaa634dd81",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "aa634dd813594b2686f1ae7b5b6911d4",
                "useduuid": "aa634dd81"
              }
            }
          },
          {
            "title": "LV002-工程创建",
            "url": "/sdoc/dev-tool/keil/126b08aa5e32382c0ab32a01.html",
            "frontmatter": {
              "title": "LV002-工程创建",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/dev-tool/keil/126b08aa5e32382c0ab32a01",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "c0ab32a01a744756b6c0c3e4231ed9aa",
                "useduuid": "c0ab32a01"
              }
            }
          },
          {
            "title": "LV010-程序与编译",
            "url": "/sdoc/dev-tool/keil/126b08e6a9c4187125e57a5f.html",
            "frontmatter": {
              "title": "LV010-程序与编译",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/dev-tool/keil/126b08e6a9c4187125e57a5f",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "125e57a5ff854ebaa58b6fff51b99a11",
                "useduuid": "125e57a5f"
              }
            }
          },
          {
            "title": "LV015-MDK工程文件简介",
            "url": "/sdoc/dev-tool/keil/126b0913857d3670d6f0eef1.html",
            "frontmatter": {
              "title": "LV015-MDK工程文件简介",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/dev-tool/keil/126b0913857d3670d6f0eef1",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "0d6f0eef153042fc862dc752cb0e3c2d",
                "useduuid": "0d6f0eef1"
              }
            }
          },
          {
            "title": "LV016-Output目录文件",
            "url": "/sdoc/dev-tool/keil/126b091384f9220a0ff9cf1d.html",
            "frontmatter": {
              "title": "LV016-Output目录文件",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/dev-tool/keil/126b091384f9220a0ff9cf1d",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "a0ff9cf1dff34a1790997424e34bac30",
                "useduuid": "a0ff9cf1d"
              }
            }
          },
          {
            "title": "LV017-Listing目录文件",
            "url": "/sdoc/dev-tool/keil/126b0913865605b5493dc70e.html",
            "frontmatter": {
              "title": "LV017-Listing目录文件",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/dev-tool/keil/126b0913865605b5493dc70e",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "5493dc70ee6849e0b32a91f39d8e2488",
                "useduuid": "5493dc70e"
              }
            }
          },
          {
            "title": "LV020-SCT分散加载文件",
            "url": "/sdoc/dev-tool/keil/126b08e6cfb5032dbc05b46a.html",
            "frontmatter": {
              "title": "LV020-SCT分散加载文件",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/dev-tool/keil/126b08e6cfb5032dbc05b46a",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "dbc05b46abca47d8a176762f5148dc50",
                "useduuid": "dbc05b46a"
              }
            }
          },
          {
            "title": "LV025-SCT文件应用",
            "url": "/sdoc/dev-tool/keil/126b08e6d335070a7fd1934d.html",
            "frontmatter": {
              "title": "LV025-SCT文件应用",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/dev-tool/keil/126b08e6d335070a7fd1934d",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "a7fd1934dbcb4eef93f57d3dce4e0059",
                "useduuid": "a7fd1934d"
              }
            }
          },
          {
            "title": "LV040-在线调试",
            "url": "/sdoc/dev-tool/keil/126b08e76d70287e70afead6.html",
            "frontmatter": {
              "title": "LV040-在线调试",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/dev-tool/keil/126b08e76d70287e70afead6",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "e70afead6dd14692ad3b3749eb2cad4d",
                "useduuid": "e70afead6"
              }
            }
          }
        ]
      },
      {
        "filePath": "sdoc/01-开发工具/02-STM32Cube/index",
        "path": "sdoc/01-开发工具/02-STM32Cube",
        "catalogues": [
          {
            "title": "LV001-STM32CubeMX简介",
            "url": "/sdoc/dev-tool/stm32cube/126b08aa58bc0838d250f7bd.html",
            "frontmatter": {
              "title": "LV001-STM32CubeMX简介",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/dev-tool/stm32cube/126b08aa58bc0838d250f7bd",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "8d250f7bdb9d4b4fb822b135635cdf20",
                "useduuid": "8d250f7bd"
              }
            }
          },
          {
            "title": "LV002-STM32CubeMX工程创建",
            "url": "/sdoc/dev-tool/stm32cube/126b08aaf7c11b6e19f8d60a.html",
            "frontmatter": {
              "title": "LV002-STM32CubeMX工程创建",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/dev-tool/stm32cube/126b08aaf7c11b6e19f8d60a",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "e19f8d60a0f64d51a22bc5a8a04bf26f",
                "useduuid": "e19f8d60a"
              }
            }
          },
          {
            "title": "LV010-Makefile管理工程",
            "url": "/sdoc/dev-tool/stm32cube/126b08e6edcf211c7df7916d.html",
            "frontmatter": {
              "title": "LV010-Makefile管理工程",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/dev-tool/stm32cube/126b08e6edcf211c7df7916d",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "c7df7916d51c40f295ec8bdf0e20a228",
                "useduuid": "c7df7916d"
              }
            }
          },
          {
            "title": "LV012-Makefile文件分析",
            "url": "/sdoc/dev-tool/stm32cube/126b08e6ef7626b7c442bfe2.html",
            "frontmatter": {
              "title": "LV012-Makefile文件分析",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/dev-tool/stm32cube/126b08e6ef7626b7c442bfe2",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "7c442bfe2f7348608819bf852cebb54e",
                "useduuid": "7c442bfe2"
              }
            }
          },
          {
            "title": "LV040-LD链接脚本",
            "url": "/sdoc/dev-tool/keil/126b08e6f2e40a653e71bc02.html",
            "frontmatter": {
              "title": "LV040-LD链接脚本",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/dev-tool/keil/126b08e6f2e40a653e71bc02",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "53e71bc02dd346aeac5749700b205317",
                "useduuid": "53e71bc02"
              }
            }
          },
          {
            "title": "LV030-STM32CubeIDE",
            "url": "/sdoc/dev-tool/stm32cube/126b08e6f0211b46eabe9106.html",
            "frontmatter": {
              "title": "LV030-STM32CubeIDE",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/dev-tool/stm32cube/126b08e6f0211b46eabe9106",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "6eabe9106e39465d81b7853e19f74deb",
                "useduuid": "6eabe9106"
              }
            }
          }
        ]
      },
      {
        "filePath": "sdoc/01-开发工具/10-下载与调试/index",
        "path": "sdoc/01-开发工具/10-下载与调试",
        "catalogues": [
          {
            "title": "LV001-下载与调试概述",
            "url": "/sdoc/dev-tool/burn-and-debug/126b08ab16fa3e011692369d.html",
            "frontmatter": {
              "title": "LV001-下载与调试概述",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/dev-tool/burn-and-debug/126b08ab16fa3e011692369d",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "11692369dc744332bc6f2569dd8ec58a",
                "useduuid": "11692369d"
              }
            }
          },
          {
            "title": "LV002-JLink怎么使用",
            "url": "/sdoc/dev-tool/burn-and-debug/126b08ab15ee0921c4f7fd64.html",
            "frontmatter": {
              "title": "LV002-JLink怎么使用",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/dev-tool/burn-and-debug/126b08ab15ee0921c4f7fd64",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "1c4f7fd64909407cb589ad3348a0c376",
                "useduuid": "1c4f7fd64"
              }
            }
          },
          {
            "title": "LV010-JFlash简介",
            "url": "/sdoc/dev-tool/burn-and-debug/126b08b7f6ce25a6c770f3b5.html",
            "frontmatter": {
              "title": "LV010-JFlash简介",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/dev-tool/burn-and-debug/126b08b7f6ce25a6c770f3b5",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "6c770f3b50d84d7fad7f77bc05f872fc",
                "useduuid": "6c770f3b5"
              }
            }
          },
          {
            "title": "LV015-STLink怎么使用",
            "url": "/sdoc/dev-tool/burn-and-debug/126b08b9c98b11187c20e13a.html",
            "frontmatter": {
              "title": "LV015-STLink怎么使用",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/dev-tool/burn-and-debug/126b08b9c98b11187c20e13a",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "87c20e13a48a44dfb380f22a1b102e34",
                "useduuid": "87c20e13a"
              }
            }
          },
          {
            "title": "LV020-ST-LINK-Utility简介",
            "url": "/sdoc/dev-tool/burn-and-debug/126b08b9cb90276fafba387f.html",
            "frontmatter": {
              "title": "LV020-ST-LINK-Utility简介",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/dev-tool/burn-and-debug/126b08b9cb90276fafba387f",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "fafba387f5f84aab849e4d8b464e22ad",
                "useduuid": "fafba387f"
              }
            }
          },
          {
            "title": "LV030-串口下载",
            "url": "/sdoc/dev-tool/burn-and-debug/126b08b9cea618afd74b243b.html",
            "frontmatter": {
              "title": "LV030-串口下载",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/dev-tool/burn-and-debug/126b08b9cea618afd74b243b",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "fd74b243b22149fe9c55a56a7b50b6d5",
                "useduuid": "fd74b243b"
              }
            }
          }
        ]
      },
      {
        "filePath": "sdoc/01-开发工具/index",
        "path": "sdoc/01-开发工具",
        "catalogues": [
          {
            "title": "01-keil",
            "children": [
              {
                "title": "LV001-keil简介",
                "url": "/sdoc/dev-tool/keil/126b08a8b79e2ecaa634dd81.html",
                "frontmatter": {
                  "title": "LV001-keil简介",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/dev-tool/keil/126b08a8b79e2ecaa634dd81",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "aa634dd813594b2686f1ae7b5b6911d4",
                    "useduuid": "aa634dd81"
                  }
                }
              },
              {
                "title": "LV002-工程创建",
                "url": "/sdoc/dev-tool/keil/126b08aa5e32382c0ab32a01.html",
                "frontmatter": {
                  "title": "LV002-工程创建",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/dev-tool/keil/126b08aa5e32382c0ab32a01",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "c0ab32a01a744756b6c0c3e4231ed9aa",
                    "useduuid": "c0ab32a01"
                  }
                }
              },
              {
                "title": "LV010-程序与编译",
                "url": "/sdoc/dev-tool/keil/126b08e6a9c4187125e57a5f.html",
                "frontmatter": {
                  "title": "LV010-程序与编译",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/dev-tool/keil/126b08e6a9c4187125e57a5f",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "125e57a5ff854ebaa58b6fff51b99a11",
                    "useduuid": "125e57a5f"
                  }
                }
              },
              {
                "title": "LV015-MDK工程文件简介",
                "url": "/sdoc/dev-tool/keil/126b0913857d3670d6f0eef1.html",
                "frontmatter": {
                  "title": "LV015-MDK工程文件简介",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/dev-tool/keil/126b0913857d3670d6f0eef1",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "0d6f0eef153042fc862dc752cb0e3c2d",
                    "useduuid": "0d6f0eef1"
                  }
                }
              },
              {
                "title": "LV016-Output目录文件",
                "url": "/sdoc/dev-tool/keil/126b091384f9220a0ff9cf1d.html",
                "frontmatter": {
                  "title": "LV016-Output目录文件",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/dev-tool/keil/126b091384f9220a0ff9cf1d",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "a0ff9cf1dff34a1790997424e34bac30",
                    "useduuid": "a0ff9cf1d"
                  }
                }
              },
              {
                "title": "LV017-Listing目录文件",
                "url": "/sdoc/dev-tool/keil/126b0913865605b5493dc70e.html",
                "frontmatter": {
                  "title": "LV017-Listing目录文件",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/dev-tool/keil/126b0913865605b5493dc70e",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "5493dc70ee6849e0b32a91f39d8e2488",
                    "useduuid": "5493dc70e"
                  }
                }
              },
              {
                "title": "LV020-SCT分散加载文件",
                "url": "/sdoc/dev-tool/keil/126b08e6cfb5032dbc05b46a.html",
                "frontmatter": {
                  "title": "LV020-SCT分散加载文件",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/dev-tool/keil/126b08e6cfb5032dbc05b46a",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "dbc05b46abca47d8a176762f5148dc50",
                    "useduuid": "dbc05b46a"
                  }
                }
              },
              {
                "title": "LV025-SCT文件应用",
                "url": "/sdoc/dev-tool/keil/126b08e6d335070a7fd1934d.html",
                "frontmatter": {
                  "title": "LV025-SCT文件应用",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/dev-tool/keil/126b08e6d335070a7fd1934d",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "a7fd1934dbcb4eef93f57d3dce4e0059",
                    "useduuid": "a7fd1934d"
                  }
                }
              },
              {
                "title": "LV040-在线调试",
                "url": "/sdoc/dev-tool/keil/126b08e76d70287e70afead6.html",
                "frontmatter": {
                  "title": "LV040-在线调试",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/dev-tool/keil/126b08e76d70287e70afead6",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "e70afead6dd14692ad3b3749eb2cad4d",
                    "useduuid": "e70afead6"
                  }
                }
              }
            ],
            "frontmatter": {}
          },
          {
            "title": "02-STM32Cube",
            "children": [
              {
                "title": "LV001-STM32CubeMX简介",
                "url": "/sdoc/dev-tool/stm32cube/126b08aa58bc0838d250f7bd.html",
                "frontmatter": {
                  "title": "LV001-STM32CubeMX简介",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/dev-tool/stm32cube/126b08aa58bc0838d250f7bd",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "8d250f7bdb9d4b4fb822b135635cdf20",
                    "useduuid": "8d250f7bd"
                  }
                }
              },
              {
                "title": "LV002-STM32CubeMX工程创建",
                "url": "/sdoc/dev-tool/stm32cube/126b08aaf7c11b6e19f8d60a.html",
                "frontmatter": {
                  "title": "LV002-STM32CubeMX工程创建",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/dev-tool/stm32cube/126b08aaf7c11b6e19f8d60a",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "e19f8d60a0f64d51a22bc5a8a04bf26f",
                    "useduuid": "e19f8d60a"
                  }
                }
              },
              {
                "title": "LV010-Makefile管理工程",
                "url": "/sdoc/dev-tool/stm32cube/126b08e6edcf211c7df7916d.html",
                "frontmatter": {
                  "title": "LV010-Makefile管理工程",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/dev-tool/stm32cube/126b08e6edcf211c7df7916d",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "c7df7916d51c40f295ec8bdf0e20a228",
                    "useduuid": "c7df7916d"
                  }
                }
              },
              {
                "title": "LV012-Makefile文件分析",
                "url": "/sdoc/dev-tool/stm32cube/126b08e6ef7626b7c442bfe2.html",
                "frontmatter": {
                  "title": "LV012-Makefile文件分析",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/dev-tool/stm32cube/126b08e6ef7626b7c442bfe2",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "7c442bfe2f7348608819bf852cebb54e",
                    "useduuid": "7c442bfe2"
                  }
                }
              },
              {
                "title": "LV040-LD链接脚本",
                "url": "/sdoc/dev-tool/keil/126b08e6f2e40a653e71bc02.html",
                "frontmatter": {
                  "title": "LV040-LD链接脚本",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/dev-tool/keil/126b08e6f2e40a653e71bc02",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "53e71bc02dd346aeac5749700b205317",
                    "useduuid": "53e71bc02"
                  }
                }
              },
              {
                "title": "LV030-STM32CubeIDE",
                "url": "/sdoc/dev-tool/stm32cube/126b08e6f0211b46eabe9106.html",
                "frontmatter": {
                  "title": "LV030-STM32CubeIDE",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/dev-tool/stm32cube/126b08e6f0211b46eabe9106",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "6eabe9106e39465d81b7853e19f74deb",
                    "useduuid": "6eabe9106"
                  }
                }
              }
            ],
            "frontmatter": {}
          },
          {
            "title": "10-下载与调试",
            "children": [
              {
                "title": "LV001-下载与调试概述",
                "url": "/sdoc/dev-tool/burn-and-debug/126b08ab16fa3e011692369d.html",
                "frontmatter": {
                  "title": "LV001-下载与调试概述",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/dev-tool/burn-and-debug/126b08ab16fa3e011692369d",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "11692369dc744332bc6f2569dd8ec58a",
                    "useduuid": "11692369d"
                  }
                }
              },
              {
                "title": "LV002-JLink怎么使用",
                "url": "/sdoc/dev-tool/burn-and-debug/126b08ab15ee0921c4f7fd64.html",
                "frontmatter": {
                  "title": "LV002-JLink怎么使用",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/dev-tool/burn-and-debug/126b08ab15ee0921c4f7fd64",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "1c4f7fd64909407cb589ad3348a0c376",
                    "useduuid": "1c4f7fd64"
                  }
                }
              },
              {
                "title": "LV010-JFlash简介",
                "url": "/sdoc/dev-tool/burn-and-debug/126b08b7f6ce25a6c770f3b5.html",
                "frontmatter": {
                  "title": "LV010-JFlash简介",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/dev-tool/burn-and-debug/126b08b7f6ce25a6c770f3b5",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "6c770f3b50d84d7fad7f77bc05f872fc",
                    "useduuid": "6c770f3b5"
                  }
                }
              },
              {
                "title": "LV015-STLink怎么使用",
                "url": "/sdoc/dev-tool/burn-and-debug/126b08b9c98b11187c20e13a.html",
                "frontmatter": {
                  "title": "LV015-STLink怎么使用",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/dev-tool/burn-and-debug/126b08b9c98b11187c20e13a",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "87c20e13a48a44dfb380f22a1b102e34",
                    "useduuid": "87c20e13a"
                  }
                }
              },
              {
                "title": "LV020-ST-LINK-Utility简介",
                "url": "/sdoc/dev-tool/burn-and-debug/126b08b9cb90276fafba387f.html",
                "frontmatter": {
                  "title": "LV020-ST-LINK-Utility简介",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/dev-tool/burn-and-debug/126b08b9cb90276fafba387f",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "fafba387f5f84aab849e4d8b464e22ad",
                    "useduuid": "fafba387f"
                  }
                }
              },
              {
                "title": "LV030-串口下载",
                "url": "/sdoc/dev-tool/burn-and-debug/126b08b9cea618afd74b243b.html",
                "frontmatter": {
                  "title": "LV030-串口下载",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/dev-tool/burn-and-debug/126b08b9cea618afd74b243b",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "fd74b243b22149fe9c55a56a7b50b6d5",
                    "useduuid": "fd74b243b"
                  }
                }
              }
            ],
            "frontmatter": {}
          }
        ]
      },
      {
        "filePath": "sdoc/10-基础篇/01-概述/index",
        "path": "sdoc/10-基础篇/01-概述",
        "catalogues": [
          {
            "title": "LV001-ARM体系结构",
            "url": "/sdoc/basic/overview/126b08ba0eae364f31526d00.html",
            "frontmatter": {
              "title": "LV001-ARM体系结构",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/basic/overview/126b08ba0eae364f31526d00",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "f31526d004e841cf942bb1c43e30f261",
                "useduuid": "f31526d00"
              }
            }
          },
          {
            "title": "LV010-常见存储器",
            "url": "/sdoc/basic/overview/126b08ba13b3329986816cf4.html",
            "frontmatter": {
              "title": "LV010-常见存储器",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/basic/overview/126b08ba13b3329986816cf4",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "986816cf43ae496ea97f2ac2344cf4bc",
                "useduuid": "986816cf4"
              }
            }
          },
          {
            "title": "LV020-CortexM0简介",
            "url": "/sdoc/basic/overview/126b08c738bc16b5b982661d.html",
            "frontmatter": {
              "title": "LV020-CortexM0简介",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/basic/overview/126b08c738bc16b5b982661d",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "5b982661dbf54e3db91954b53e220c58",
                "useduuid": "5b982661d"
              }
            }
          },
          {
            "title": "LV022-CortexM0存储器映射",
            "url": "/sdoc/basic/overview/126b08e6a7051c291c1151a6.html",
            "frontmatter": {
              "title": "LV022-CortexM0存储器映射",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/basic/overview/126b08e6a7051c291c1151a6",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "91c1151a6b3c4a07b26e0383912b8543",
                "useduuid": "91c1151a6"
              }
            }
          },
          {
            "title": "LV030-CortexM3简介",
            "url": "/sdoc/basic/overview/126b08c73a222946645cba90.html",
            "frontmatter": {
              "title": "LV030-CortexM3简介",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/basic/overview/126b08c73a222946645cba90",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "6645cba90f414432ac823c9d1938fc37",
                "useduuid": "6645cba90"
              }
            }
          },
          {
            "title": "LV035-CortexM3存储器系统",
            "url": "/sdoc/basic/overview/126b08c73d361161792b640a.html",
            "frontmatter": {
              "title": "LV035-CortexM3存储器系统",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/basic/overview/126b08c73d361161792b640a",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "1792b640ad2b40c1a34cc0ea4da24ed9",
                "useduuid": "1792b640a"
              }
            }
          },
          {
            "title": "LV040-CortexM3异常",
            "url": "/sdoc/basic/overview/126b08e5d7b911b28ed9ee4c.html",
            "frontmatter": {
              "title": "LV040-CortexM3异常",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/basic/overview/126b08e5d7b911b28ed9ee4c",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "28ed9ee4c4ee4374a05b403be9d08519",
                "useduuid": "28ed9ee4c"
              }
            }
          },
          {
            "title": "LV040-CortexM3的NVIC中断控制",
            "url": "/sdoc/basic/overview/126b08e5fb5429a0009ffc8b.html",
            "frontmatter": {
              "title": "LV040-CortexM3的NVIC中断控制",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/basic/overview/126b08e5fb5429a0009ffc8b",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "0009ffc8b07a4e459a29f0ba0518592b",
                "useduuid": "0009ffc8b"
              }
            }
          }
        ]
      },
      {
        "filePath": "sdoc/10-基础篇/10-STM32基础/index",
        "path": "sdoc/10-基础篇/10-STM32基础",
        "catalogues": [
          {
            "title": "LV001-STM32概述",
            "url": "/sdoc/basic/stm32basic/126b08e5feaa2043ad05a48e.html",
            "frontmatter": {
              "title": "LV001-STM32概述",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/basic/stm32basic/126b08e5feaa2043ad05a48e",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "3ad05a48eac840679287e1b2301b039a",
                "useduuid": "3ad05a48e"
              }
            }
          },
          {
            "title": "LV010-嵌入式C语言",
            "url": "/sdoc/basic/stm32basic/126b08e600543a33cc0a657a.html",
            "frontmatter": {
              "title": "LV010-嵌入式C语言",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/basic/stm32basic/126b08e600543a33cc0a657a",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "3cc0a657a05d403785cc85fa30a99505",
                "useduuid": "3cc0a657a"
              }
            }
          },
          {
            "title": "LV020-STM32怎么开发",
            "url": "/sdoc/basic/stm32basic/126b08e603011c2e21862cc6.html",
            "frontmatter": {
              "title": "LV020-STM32怎么开发",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/basic/stm32basic/126b08e603011c2e21862cc6",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "e21862cc6b54423c827258b8732bcdd8",
                "useduuid": "e21862cc6"
              }
            }
          },
          {
            "title": "LV021-认识HAL库",
            "url": "/sdoc/basic/stm32basic/126b08e608d01035e7260fce.html",
            "frontmatter": {
              "title": "LV021-认识HAL库",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/basic/stm32basic/126b08e608d01035e7260fce",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "5e7260fce3184ab293e2a218bc58687b",
                "useduuid": "5e7260fce"
              }
            }
          },
          {
            "title": "LV030-STM32程序下载",
            "url": "/sdoc/basic/stm32basic/126b08e7828f108bc0b2f2dc.html",
            "frontmatter": {
              "title": "LV030-STM32程序下载",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/basic/stm32basic/126b08e7828f108bc0b2f2dc",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "bc0b2f2dc98042cb8e44dc7aa1995faa",
                "useduuid": "bc0b2f2dc"
              }
            }
          },
          {
            "title": "LV040-STM32系统架构",
            "url": "/sdoc/basic/stm32basic/126b08e6831f0a0031c3f015.html",
            "frontmatter": {
              "title": "LV040-STM32系统架构",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/basic/stm32basic/126b08e6831f0a0031c3f015",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "031c3f0159bd41bfa7f2e89f6b50e340",
                "useduuid": "031c3f015"
              }
            }
          },
          {
            "title": "LV045-STM32存储器系统",
            "url": "/sdoc/basic/stm32basic/126b08e6840f3457e72c8780.html",
            "frontmatter": {
              "title": "LV045-STM32存储器系统",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/basic/stm32basic/126b08e6840f3457e72c8780",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "7e72c87803ee4322bcd1072590f70cb3",
                "useduuid": "7e72c8780"
              }
            }
          },
          {
            "title": "LV050-STM32地址重映射",
            "url": "/sdoc/basic/stm32basic/126b08e6a53918eab18839bd.html",
            "frontmatter": {
              "title": "LV050-STM32地址重映射",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/basic/stm32basic/126b08e6a53918eab18839bd",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "ab18839bd52b440b9ca51fa34ea3d714",
                "useduuid": "ab18839bd"
              }
            }
          }
        ]
      },
      {
        "filePath": "sdoc/10-基础篇/20-STM32的启动/index",
        "path": "sdoc/10-基础篇/20-STM32的启动",
        "catalogues": [
          {
            "title": "LV001-启动文件",
            "url": "/sdoc/basic/stm32setup/126b08e788e83383285742cb.html",
            "frontmatter": {
              "title": "LV001-启动文件",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/basic/stm32setup/126b08e788e83383285742cb",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "3285742cb8d24fba98867646d8e8231b",
                "useduuid": "3285742cb"
              }
            }
          },
          {
            "title": "LV005-启动过程",
            "url": "/sdoc/basic/stm32setup/126b08e78de70b59cd9ba362.html",
            "frontmatter": {
              "title": "LV005-启动过程",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/basic/stm32setup/126b08e78de70b59cd9ba362",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "9cd9ba36208d49f99352645293a0d904",
                "useduuid": "9cd9ba362"
              }
            }
          },
          {
            "title": "LV010-在内部SRAM调试",
            "url": "/sdoc/basic/stm32setup/126b08e7afad049a561ccf1b.html",
            "frontmatter": {
              "title": "LV010-在内部SRAM调试",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/basic/stm32setup/126b08e7afad049a561ccf1b",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "a561ccf1b5d3443c85b0f21280803c3a",
                "useduuid": "a561ccf1b"
              }
            }
          }
        ]
      },
      {
        "filePath": "sdoc/10-基础篇/30-STM32的中断/index",
        "path": "sdoc/10-基础篇/30-STM32的中断",
        "catalogues": [
          {
            "title": "LV001-STM32中断简介",
            "url": "/sdoc/basic/stm32interrupt/126b08f57241322fa604782d.html",
            "frontmatter": {
              "title": "LV001-STM32中断简介",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/basic/stm32interrupt/126b08f57241322fa604782d",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "fa604782d9e94117829d0f1a00c0d99d",
                "useduuid": "fa604782d"
              }
            }
          }
        ]
      },
      {
        "filePath": "sdoc/10-基础篇/40-STM32时钟/index",
        "path": "sdoc/10-基础篇/40-STM32时钟",
        "catalogues": [
          {
            "title": "LV001-STM32F1时钟系统",
            "url": "/sdoc/basic/stm32clock/126b08f5d89727a6ee395582.html",
            "frontmatter": {
              "title": "LV001-STM32F1时钟系统",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/basic/stm32clock/126b08f5d89727a6ee395582",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "6ee395582b8f401e806f3f6b8aac7e4a",
                "useduuid": "6ee395582"
              }
            }
          },
          {
            "title": "LV010-STM32F1的SYSCLK",
            "url": "/sdoc/basic/stm32clock/126b08f5dcd1392ef8558043.html",
            "frontmatter": {
              "title": "LV010-STM32F1的SYSCLK",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/basic/stm32clock/126b08f5dcd1392ef8558043",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "ef8558043211434e9696dd7586e40951",
                "useduuid": "ef8558043"
              }
            }
          }
        ]
      },
      {
        "filePath": "sdoc/10-基础篇/50-STM32内部FLASH/index",
        "path": "sdoc/10-基础篇/50-STM32内部FLASH",
        "catalogues": [
          {
            "title": "LV001-内部FLASH简介",
            "url": "/sdoc/basic/stm32flash/126b09345207167f3ed95339.html",
            "frontmatter": {
              "title": "LV001-内部FLASH简介",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/basic/stm32flash/126b09345207167f3ed95339",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "f3ed95339a054335bd7861fbbdfca984",
                "useduuid": "f3ed95339"
              }
            }
          },
          {
            "title": "LV010-FLASH操作流程",
            "url": "/sdoc/basic/stm32flash/126b0934555e1e98aa9081c5.html",
            "frontmatter": {
              "title": "LV010-FLASH操作流程",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/basic/stm32flash/126b0934555e1e98aa9081c5",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "8aa9081c5bfb4658bc14302518ab96b3",
                "useduuid": "8aa9081c5"
              }
            }
          },
          {
            "title": "LV020-IAP编程简介",
            "url": "/sdoc/basic/stm32flash/126b0e26745a3124f27972bd.html",
            "frontmatter": {
              "title": "LV020-IAP编程简介",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/basic/stm32flash/126b0e26745a3124f27972bd",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "4f27972bd3fc4860b4605d3ba9d93bb7",
                "useduuid": "4f27972bd"
              }
            }
          },
          {
            "title": "LV025-IAP编程实现",
            "url": "/sdoc/basic/stm32flash/126b0e4540061175c7584cc2.html",
            "frontmatter": {
              "title": "LV025-IAP编程实现",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/basic/stm32flash/126b0e4540061175c7584cc2",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "5c7584cc23ea451aaa122d51f3053c7c",
                "useduuid": "5c7584cc2"
              }
            }
          }
        ]
      },
      {
        "filePath": "sdoc/10-基础篇/60-STM32的内存/index",
        "path": "sdoc/10-基础篇/60-STM32的内存",
        "catalogues": [
          {
            "title": "LV001-STM32内存简介",
            "url": "/sdoc/basic/stm32memory/126b0941431c016e4bdd2a68.html",
            "frontmatter": {
              "title": "LV001-STM32内存简介",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/basic/stm32memory/126b0941431c016e4bdd2a68",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "e4bdd2a68030419b91dea7af452724aa",
                "useduuid": "e4bdd2a68"
              }
            }
          },
          {
            "title": "LV010-内存管理",
            "url": "/sdoc/basic/stm32memory/126b0e24d5e326e3a7296e85.html",
            "frontmatter": {
              "title": "LV010-内存管理",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/basic/stm32memory/126b0e24d5e326e3a7296e85",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "3a7296e85ae54af393dd0790947698ce",
                "useduuid": "3a7296e85"
              }
            }
          }
        ]
      },
      {
        "filePath": "sdoc/10-基础篇/70-STM32电源管理/index",
        "path": "sdoc/10-基础篇/70-STM32电源管理",
        "catalogues": [
          {
            "title": "LV001-电源管理简介",
            "url": "/sdoc/basic/stm32pwr/126b09513f17393c50358806.html",
            "frontmatter": {
              "title": "LV001-电源管理简介",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/basic/stm32pwr/126b09513f17393c50358806",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "c503588060cf485a965221f48977e91d",
                "useduuid": "c50358806"
              }
            }
          },
          {
            "title": "LV010-三种模式实现",
            "url": "/sdoc/basic/stm32pwr/126b095140443bc89b1ebe84.html",
            "frontmatter": {
              "title": "LV010-三种模式实现",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/basic/stm32pwr/126b095140443bc89b1ebe84",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "89b1ebe841074780aa0a2abaac3caa24",
                "useduuid": "89b1ebe84"
              }
            }
          }
        ]
      },
      {
        "filePath": "sdoc/10-基础篇/index",
        "path": "sdoc/10-基础篇",
        "catalogues": [
          {
            "title": "01-概述",
            "children": [
              {
                "title": "LV001-ARM体系结构",
                "url": "/sdoc/basic/overview/126b08ba0eae364f31526d00.html",
                "frontmatter": {
                  "title": "LV001-ARM体系结构",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/basic/overview/126b08ba0eae364f31526d00",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "f31526d004e841cf942bb1c43e30f261",
                    "useduuid": "f31526d00"
                  }
                }
              },
              {
                "title": "LV010-常见存储器",
                "url": "/sdoc/basic/overview/126b08ba13b3329986816cf4.html",
                "frontmatter": {
                  "title": "LV010-常见存储器",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/basic/overview/126b08ba13b3329986816cf4",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "986816cf43ae496ea97f2ac2344cf4bc",
                    "useduuid": "986816cf4"
                  }
                }
              },
              {
                "title": "LV020-CortexM0简介",
                "url": "/sdoc/basic/overview/126b08c738bc16b5b982661d.html",
                "frontmatter": {
                  "title": "LV020-CortexM0简介",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/basic/overview/126b08c738bc16b5b982661d",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "5b982661dbf54e3db91954b53e220c58",
                    "useduuid": "5b982661d"
                  }
                }
              },
              {
                "title": "LV022-CortexM0存储器映射",
                "url": "/sdoc/basic/overview/126b08e6a7051c291c1151a6.html",
                "frontmatter": {
                  "title": "LV022-CortexM0存储器映射",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/basic/overview/126b08e6a7051c291c1151a6",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "91c1151a6b3c4a07b26e0383912b8543",
                    "useduuid": "91c1151a6"
                  }
                }
              },
              {
                "title": "LV030-CortexM3简介",
                "url": "/sdoc/basic/overview/126b08c73a222946645cba90.html",
                "frontmatter": {
                  "title": "LV030-CortexM3简介",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/basic/overview/126b08c73a222946645cba90",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "6645cba90f414432ac823c9d1938fc37",
                    "useduuid": "6645cba90"
                  }
                }
              },
              {
                "title": "LV035-CortexM3存储器系统",
                "url": "/sdoc/basic/overview/126b08c73d361161792b640a.html",
                "frontmatter": {
                  "title": "LV035-CortexM3存储器系统",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/basic/overview/126b08c73d361161792b640a",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "1792b640ad2b40c1a34cc0ea4da24ed9",
                    "useduuid": "1792b640a"
                  }
                }
              },
              {
                "title": "LV040-CortexM3异常",
                "url": "/sdoc/basic/overview/126b08e5d7b911b28ed9ee4c.html",
                "frontmatter": {
                  "title": "LV040-CortexM3异常",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/basic/overview/126b08e5d7b911b28ed9ee4c",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "28ed9ee4c4ee4374a05b403be9d08519",
                    "useduuid": "28ed9ee4c"
                  }
                }
              },
              {
                "title": "LV040-CortexM3的NVIC中断控制",
                "url": "/sdoc/basic/overview/126b08e5fb5429a0009ffc8b.html",
                "frontmatter": {
                  "title": "LV040-CortexM3的NVIC中断控制",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/basic/overview/126b08e5fb5429a0009ffc8b",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "0009ffc8b07a4e459a29f0ba0518592b",
                    "useduuid": "0009ffc8b"
                  }
                }
              }
            ],
            "frontmatter": {}
          },
          {
            "title": "10-STM32基础",
            "children": [
              {
                "title": "LV001-STM32概述",
                "url": "/sdoc/basic/stm32basic/126b08e5feaa2043ad05a48e.html",
                "frontmatter": {
                  "title": "LV001-STM32概述",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/basic/stm32basic/126b08e5feaa2043ad05a48e",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "3ad05a48eac840679287e1b2301b039a",
                    "useduuid": "3ad05a48e"
                  }
                }
              },
              {
                "title": "LV010-嵌入式C语言",
                "url": "/sdoc/basic/stm32basic/126b08e600543a33cc0a657a.html",
                "frontmatter": {
                  "title": "LV010-嵌入式C语言",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/basic/stm32basic/126b08e600543a33cc0a657a",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "3cc0a657a05d403785cc85fa30a99505",
                    "useduuid": "3cc0a657a"
                  }
                }
              },
              {
                "title": "LV020-STM32怎么开发",
                "url": "/sdoc/basic/stm32basic/126b08e603011c2e21862cc6.html",
                "frontmatter": {
                  "title": "LV020-STM32怎么开发",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/basic/stm32basic/126b08e603011c2e21862cc6",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "e21862cc6b54423c827258b8732bcdd8",
                    "useduuid": "e21862cc6"
                  }
                }
              },
              {
                "title": "LV021-认识HAL库",
                "url": "/sdoc/basic/stm32basic/126b08e608d01035e7260fce.html",
                "frontmatter": {
                  "title": "LV021-认识HAL库",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/basic/stm32basic/126b08e608d01035e7260fce",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "5e7260fce3184ab293e2a218bc58687b",
                    "useduuid": "5e7260fce"
                  }
                }
              },
              {
                "title": "LV030-STM32程序下载",
                "url": "/sdoc/basic/stm32basic/126b08e7828f108bc0b2f2dc.html",
                "frontmatter": {
                  "title": "LV030-STM32程序下载",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/basic/stm32basic/126b08e7828f108bc0b2f2dc",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "bc0b2f2dc98042cb8e44dc7aa1995faa",
                    "useduuid": "bc0b2f2dc"
                  }
                }
              },
              {
                "title": "LV040-STM32系统架构",
                "url": "/sdoc/basic/stm32basic/126b08e6831f0a0031c3f015.html",
                "frontmatter": {
                  "title": "LV040-STM32系统架构",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/basic/stm32basic/126b08e6831f0a0031c3f015",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "031c3f0159bd41bfa7f2e89f6b50e340",
                    "useduuid": "031c3f015"
                  }
                }
              },
              {
                "title": "LV045-STM32存储器系统",
                "url": "/sdoc/basic/stm32basic/126b08e6840f3457e72c8780.html",
                "frontmatter": {
                  "title": "LV045-STM32存储器系统",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/basic/stm32basic/126b08e6840f3457e72c8780",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "7e72c87803ee4322bcd1072590f70cb3",
                    "useduuid": "7e72c8780"
                  }
                }
              },
              {
                "title": "LV050-STM32地址重映射",
                "url": "/sdoc/basic/stm32basic/126b08e6a53918eab18839bd.html",
                "frontmatter": {
                  "title": "LV050-STM32地址重映射",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/basic/stm32basic/126b08e6a53918eab18839bd",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "ab18839bd52b440b9ca51fa34ea3d714",
                    "useduuid": "ab18839bd"
                  }
                }
              }
            ],
            "frontmatter": {}
          },
          {
            "title": "20-STM32的启动",
            "children": [
              {
                "title": "LV001-启动文件",
                "url": "/sdoc/basic/stm32setup/126b08e788e83383285742cb.html",
                "frontmatter": {
                  "title": "LV001-启动文件",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/basic/stm32setup/126b08e788e83383285742cb",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "3285742cb8d24fba98867646d8e8231b",
                    "useduuid": "3285742cb"
                  }
                }
              },
              {
                "title": "LV005-启动过程",
                "url": "/sdoc/basic/stm32setup/126b08e78de70b59cd9ba362.html",
                "frontmatter": {
                  "title": "LV005-启动过程",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/basic/stm32setup/126b08e78de70b59cd9ba362",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "9cd9ba36208d49f99352645293a0d904",
                    "useduuid": "9cd9ba362"
                  }
                }
              },
              {
                "title": "LV010-在内部SRAM调试",
                "url": "/sdoc/basic/stm32setup/126b08e7afad049a561ccf1b.html",
                "frontmatter": {
                  "title": "LV010-在内部SRAM调试",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/basic/stm32setup/126b08e7afad049a561ccf1b",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "a561ccf1b5d3443c85b0f21280803c3a",
                    "useduuid": "a561ccf1b"
                  }
                }
              }
            ],
            "frontmatter": {}
          },
          {
            "title": "30-STM32的中断",
            "children": [
              {
                "title": "LV001-STM32中断简介",
                "url": "/sdoc/basic/stm32interrupt/126b08f57241322fa604782d.html",
                "frontmatter": {
                  "title": "LV001-STM32中断简介",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/basic/stm32interrupt/126b08f57241322fa604782d",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "fa604782d9e94117829d0f1a00c0d99d",
                    "useduuid": "fa604782d"
                  }
                }
              }
            ],
            "frontmatter": {}
          },
          {
            "title": "40-STM32时钟",
            "children": [
              {
                "title": "LV001-STM32F1时钟系统",
                "url": "/sdoc/basic/stm32clock/126b08f5d89727a6ee395582.html",
                "frontmatter": {
                  "title": "LV001-STM32F1时钟系统",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/basic/stm32clock/126b08f5d89727a6ee395582",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "6ee395582b8f401e806f3f6b8aac7e4a",
                    "useduuid": "6ee395582"
                  }
                }
              },
              {
                "title": "LV010-STM32F1的SYSCLK",
                "url": "/sdoc/basic/stm32clock/126b08f5dcd1392ef8558043.html",
                "frontmatter": {
                  "title": "LV010-STM32F1的SYSCLK",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/basic/stm32clock/126b08f5dcd1392ef8558043",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "ef8558043211434e9696dd7586e40951",
                    "useduuid": "ef8558043"
                  }
                }
              }
            ],
            "frontmatter": {}
          },
          {
            "title": "50-STM32内部FLASH",
            "children": [
              {
                "title": "LV001-内部FLASH简介",
                "url": "/sdoc/basic/stm32flash/126b09345207167f3ed95339.html",
                "frontmatter": {
                  "title": "LV001-内部FLASH简介",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/basic/stm32flash/126b09345207167f3ed95339",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "f3ed95339a054335bd7861fbbdfca984",
                    "useduuid": "f3ed95339"
                  }
                }
              },
              {
                "title": "LV010-FLASH操作流程",
                "url": "/sdoc/basic/stm32flash/126b0934555e1e98aa9081c5.html",
                "frontmatter": {
                  "title": "LV010-FLASH操作流程",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/basic/stm32flash/126b0934555e1e98aa9081c5",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "8aa9081c5bfb4658bc14302518ab96b3",
                    "useduuid": "8aa9081c5"
                  }
                }
              },
              {
                "title": "LV020-IAP编程简介",
                "url": "/sdoc/basic/stm32flash/126b0e26745a3124f27972bd.html",
                "frontmatter": {
                  "title": "LV020-IAP编程简介",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/basic/stm32flash/126b0e26745a3124f27972bd",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "4f27972bd3fc4860b4605d3ba9d93bb7",
                    "useduuid": "4f27972bd"
                  }
                }
              },
              {
                "title": "LV025-IAP编程实现",
                "url": "/sdoc/basic/stm32flash/126b0e4540061175c7584cc2.html",
                "frontmatter": {
                  "title": "LV025-IAP编程实现",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/basic/stm32flash/126b0e4540061175c7584cc2",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "5c7584cc23ea451aaa122d51f3053c7c",
                    "useduuid": "5c7584cc2"
                  }
                }
              }
            ],
            "frontmatter": {}
          },
          {
            "title": "60-STM32的内存",
            "children": [
              {
                "title": "LV001-STM32内存简介",
                "url": "/sdoc/basic/stm32memory/126b0941431c016e4bdd2a68.html",
                "frontmatter": {
                  "title": "LV001-STM32内存简介",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/basic/stm32memory/126b0941431c016e4bdd2a68",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "e4bdd2a68030419b91dea7af452724aa",
                    "useduuid": "e4bdd2a68"
                  }
                }
              },
              {
                "title": "LV010-内存管理",
                "url": "/sdoc/basic/stm32memory/126b0e24d5e326e3a7296e85.html",
                "frontmatter": {
                  "title": "LV010-内存管理",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/basic/stm32memory/126b0e24d5e326e3a7296e85",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "3a7296e85ae54af393dd0790947698ce",
                    "useduuid": "3a7296e85"
                  }
                }
              }
            ],
            "frontmatter": {}
          },
          {
            "title": "70-STM32电源管理",
            "children": [
              {
                "title": "LV001-电源管理简介",
                "url": "/sdoc/basic/stm32pwr/126b09513f17393c50358806.html",
                "frontmatter": {
                  "title": "LV001-电源管理简介",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/basic/stm32pwr/126b09513f17393c50358806",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "c503588060cf485a965221f48977e91d",
                    "useduuid": "c50358806"
                  }
                }
              },
              {
                "title": "LV010-三种模式实现",
                "url": "/sdoc/basic/stm32pwr/126b095140443bc89b1ebe84.html",
                "frontmatter": {
                  "title": "LV010-三种模式实现",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/basic/stm32pwr/126b095140443bc89b1ebe84",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "89b1ebe841074780aa0a2abaac3caa24",
                    "useduuid": "89b1ebe84"
                  }
                }
              }
            ],
            "frontmatter": {}
          }
        ]
      },
      {
        "filePath": "sdoc/20-基本外设篇/01-GPIO/index",
        "path": "sdoc/20-基本外设篇/01-GPIO",
        "catalogues": [
          {
            "title": "LV001-STM32的GPIO简介",
            "url": "/sdoc/peripheral/gpio/126b08e802d21f6e4f658296.html",
            "frontmatter": {
              "title": "LV001-STM32的GPIO简介",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/peripheral/gpio/126b08e802d21f6e4f658296",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "e4f658296d8f440694a80e81f31777d4",
                "useduuid": "e4f658296"
              }
            }
          },
          {
            "title": "LV010-输入输出模式详解",
            "url": "/sdoc/peripheral/gpio/126b08e804d303ad5b541ecd.html",
            "frontmatter": {
              "title": "LV010-输入输出模式详解",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/peripheral/gpio/126b08e804d303ad5b541ecd",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "d5b541ecde0f4e1799e17d09e88a33fa",
                "useduuid": "d5b541ecd"
              }
            }
          },
          {
            "title": "LV020-GPIO控制LED",
            "url": "/sdoc/peripheral/gpio/126b08e805ca1e15c40474c4.html",
            "frontmatter": {
              "title": "LV020-GPIO控制LED",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/peripheral/gpio/126b08e805ca1e15c40474c4",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "5c40474c47fc44e49114f4489f7fb359",
                "useduuid": "5c40474c4"
              }
            }
          },
          {
            "title": "LV030-按键检测",
            "url": "/sdoc/peripheral/gpio/126b08e8078f1f2b7ad1d6a6.html",
            "frontmatter": {
              "title": "LV030-按键检测",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/peripheral/gpio/126b08e8078f1f2b7ad1d6a6",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "b7ad1d6a65df41fab1ae6bd4b2de28b9",
                "useduuid": "b7ad1d6a6"
              }
            }
          },
          {
            "title": "LV040-外部中断",
            "url": "/sdoc/peripheral/gpio/126b08f58a5c2c09e1d6100f.html",
            "frontmatter": {
              "title": "LV040-外部中断",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/peripheral/gpio/126b08f58a5c2c09e1d6100f",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "9e1d6100f7d74737974bd9674a8ba8c0",
                "useduuid": "9e1d6100f"
              }
            }
          },
          {
            "title": "LV045-外部中断实例",
            "url": "/sdoc/peripheral/gpio/126b08f596281cc89a3bc4c6.html",
            "frontmatter": {
              "title": "LV045-外部中断实例",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/peripheral/gpio/126b08f596281cc89a3bc4c6",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "89a3bc4c6a9b4249afce4152ca5d1241",
                "useduuid": "89a3bc4c6"
              }
            }
          }
        ]
      },
      {
        "filePath": "sdoc/20-基本外设篇/10-UART/index",
        "path": "sdoc/20-基本外设篇/10-UART",
        "catalogues": [
          {
            "title": "LV001-串口通信简介",
            "url": "/sdoc/peripheral/uart/126b08f60edb3b6ac7962cbf.html",
            "frontmatter": {
              "title": "LV001-串口通信简介",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/peripheral/uart/126b08f60edb3b6ac7962cbf",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "ac7962cbf7d245659539f5436bb59e37",
                "useduuid": "ac7962cbf"
              }
            }
          },
          {
            "title": "LV010-STM32的串口",
            "url": "/sdoc/peripheral/uart/126b08f6146d2d238b102738.html",
            "frontmatter": {
              "title": "LV010-STM32的串口",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/peripheral/uart/126b08f6146d2d238b102738",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "38b1027380d146cb959e571687931c97",
                "useduuid": "38b102738"
              }
            }
          },
          {
            "title": "LV020-串口收发实例",
            "url": "/sdoc/peripheral/uart/126b08f61664097f4a0617fc.html",
            "frontmatter": {
              "title": "LV020-串口收发实例",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/peripheral/uart/126b08f61664097f4a0617fc",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "f4a0617fc94447a8962e262d9db98842",
                "useduuid": "f4a0617fc"
              }
            }
          }
        ]
      },
      {
        "filePath": "sdoc/20-基本外设篇/15-定时器/index",
        "path": "sdoc/20-基本外设篇/15-定时器",
        "catalogues": [
          {
            "title": "LV001-基本定时器简介",
            "url": "/sdoc/peripheral/timer/basic/126b08f6a8e32e3427f3a2b2.html",
            "frontmatter": {
              "title": "LV001-基本定时器简介",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/peripheral/timer/basic/126b08f6a8e32e3427f3a2b2",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "427f3a2b26fc476299e1f6f52f2c33ad",
                "useduuid": "427f3a2b2"
              }
            }
          },
          {
            "title": "LV030-通用定时器简介",
            "url": "/sdoc/peripheral/timer/126b08f6aa441b536809798e.html",
            "frontmatter": {
              "title": "LV030-通用定时器简介",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/peripheral/timer/126b08f6aa441b536809798e",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "36809798e68046309b813b9706a23f8a",
                "useduuid": "36809798e"
              }
            }
          },
          {
            "title": "LV035-通用定时器的中断",
            "url": "/sdoc/peripheral/timer/126b08f6aa9f293ebbce26b2.html",
            "frontmatter": {
              "title": "LV035-通用定时器的中断",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/peripheral/timer/126b08f6aa9f293ebbce26b2",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "ebbce26b2eed4f0e8e7db13c33566c30",
                "useduuid": "ebbce26b2"
              }
            }
          },
          {
            "title": "LV040-通用定时器PWM输出",
            "url": "/sdoc/peripheral/timer/126b08f6aac20ab7bc66d777.html",
            "frontmatter": {
              "title": "LV040-通用定时器PWM输出",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/peripheral/timer/126b08f6aac20ab7bc66d777",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "7bc66d777a344e838bab8b97634f96bc",
                "useduuid": "7bc66d777"
              }
            }
          },
          {
            "title": "LV045-通用定时器输入捕获",
            "url": "/sdoc/peripheral/timer/126b08f6ab6404f5fdfb5648.html",
            "frontmatter": {
              "title": "LV045-通用定时器输入捕获",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/peripheral/timer/126b08f6ab6404f5fdfb5648",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "5fdfb5648d1542adb31bc692aaebfac4",
                "useduuid": "5fdfb5648"
              }
            }
          },
          {
            "title": "LV050-通用定时器脉冲计数",
            "url": "/sdoc/peripheral/timer/126b08f6ab873bc74e57e381.html",
            "frontmatter": {
              "title": "LV050-通用定时器脉冲计数",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/peripheral/timer/126b08f6ab873bc74e57e381",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "74e57e3815ac43a9b2ad64b853530fde",
                "useduuid": "74e57e381"
              }
            }
          },
          {
            "title": "LV070-高级定时器简介",
            "url": "/sdoc/peripheral/timer/126b08f6abf821065c6674f2.html",
            "frontmatter": {
              "title": "LV070-高级定时器简介",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/peripheral/timer/126b08f6abf821065c6674f2",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "65c6674f24194a5c905c5931e3b1bb25",
                "useduuid": "65c6674f2"
              }
            }
          },
          {
            "title": "LV075-高级定时器PWM输出",
            "url": "/sdoc/peripheral/timer/126b08f6ac4f2bb02b42403e.html",
            "frontmatter": {
              "title": "LV075-高级定时器PWM输出",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/peripheral/timer/126b08f6ac4f2bb02b42403e",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "02b42403e6334b1e88b3aefe535488bf",
                "useduuid": "02b42403e"
              }
            }
          },
          {
            "title": "LV080-高级定时器输出比较模式",
            "url": "/sdoc/peripheral/timer/126b08f6aca0253099c9ba29.html",
            "frontmatter": {
              "title": "LV080-高级定时器输出比较模式",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/peripheral/timer/126b08f6aca0253099c9ba29",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "099c9ba29781487ab77ef3977ecd7122",
                "useduuid": "099c9ba29"
              }
            }
          },
          {
            "title": "LV085-高级定时器互补输出",
            "url": "/sdoc/peripheral/timer/126b08f6ad8f2e0487d6c438.html",
            "frontmatter": {
              "title": "LV085-高级定时器互补输出",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/peripheral/timer/126b08f6ad8f2e0487d6c438",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "487d6c4384224a459898d149b83609e0",
                "useduuid": "487d6c438"
              }
            }
          },
          {
            "title": "LV090-高级定时器PWM输入",
            "url": "/sdoc/peripheral/timer/126b08f6ae2512a51a9eec42.html",
            "frontmatter": {
              "title": "LV090-高级定时器PWM输入",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/peripheral/timer/126b08f6ae2512a51a9eec42",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "51a9eec423e4412c99aa8247ccd2092d",
                "useduuid": "51a9eec42"
              }
            }
          },
          {
            "title": "LV100-SysTick定时器简介",
            "url": "/sdoc/peripheral/timer/126b08f7176d34627620ad1b.html",
            "frontmatter": {
              "title": "LV100-SysTick定时器简介",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/peripheral/timer/126b08f7176d34627620ad1b",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "27620ad1b6704f3ab64b6bc4d14b88f4",
                "useduuid": "27620ad1b"
              }
            }
          },
          {
            "title": "LV105-自定义延时函数",
            "url": "/sdoc/peripheral/timer/126b08f71bb31f61f9e3c819.html",
            "frontmatter": {
              "title": "LV105-自定义延时函数",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/peripheral/timer/126b08f71bb31f61f9e3c819",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "1f9e3c81978544cfa5b36e225514bb0d",
                "useduuid": "1f9e3c819"
              }
            }
          }
        ]
      },
      {
        "filePath": "sdoc/20-基本外设篇/20-看门狗/index",
        "path": "sdoc/20-基本外设篇/20-看门狗",
        "catalogues": [
          {
            "title": "LV001-看门狗简介",
            "url": "/sdoc/peripheral/watchdog/126b09043ae916195cb39541.html",
            "frontmatter": {
              "title": "LV001-看门狗简介",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/peripheral/watchdog/126b09043ae916195cb39541",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "95cb3954118d49beb6d6912a9e3cb522",
                "useduuid": "95cb39541"
              }
            }
          },
          {
            "title": "LV010-看门狗使用实例",
            "url": "/sdoc/peripheral/watchdog/126b09043c29000296442c6e.html",
            "frontmatter": {
              "title": "LV010-看门狗使用实例",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/peripheral/watchdog/126b09043c29000296442c6e",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "296442c6e9ba4600b39cd12075ea87af",
                "useduuid": "296442c6e"
              }
            }
          }
        ]
      },
      {
        "filePath": "sdoc/20-基本外设篇/25-FSMC/01-FSMC基础/index",
        "path": "sdoc/20-基本外设篇/25-FSMC/01-FSMC基础",
        "catalogues": [
          {
            "title": "LV001-FSMC简介",
            "url": "/sdoc/peripheral/fsmc/fsmc-basic/126b092492553b23e8704ba7.html",
            "frontmatter": {
              "title": "LV001-FSMC简介",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/peripheral/fsmc/fsmc-basic/126b092492553b23e8704ba7",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "3e8704ba79214a3cbb9ab231d637b62e",
                "useduuid": "3e8704ba7"
              }
            }
          },
          {
            "title": "LV005-存储器映射与控制器",
            "url": "/sdoc/peripheral/fsmc/fsmc-basic/126b092499b000721416c9a0.html",
            "frontmatter": {
              "title": "LV005-存储器映射与控制器",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/peripheral/fsmc/fsmc-basic/126b092499b000721416c9a0",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "21416c9a03d8478188e3897a2c59aa5e",
                "useduuid": "21416c9a0"
              }
            }
          },
          {
            "title": "LV010-相关HAL库函数",
            "url": "/sdoc/peripheral/fsmc/fsmc-basic/126b0924b19533081adda526.html",
            "frontmatter": {
              "title": "LV010-相关HAL库函数",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/peripheral/fsmc/fsmc-basic/126b0924b19533081adda526",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "81adda5266e04132bfcad67ecceec69d",
                "useduuid": "81adda526"
              }
            }
          }
        ]
      },
      {
        "filePath": "sdoc/20-基本外设篇/25-FSMC/05-外部SRAM/index",
        "path": "sdoc/20-基本外设篇/25-FSMC/05-外部SRAM",
        "catalogues": [
          {
            "title": "LV001-概述",
            "url": "/sdoc/peripheral/fsmc/sram/126b09248e5b007fcadf7acc.html",
            "frontmatter": {
              "title": "LV001-概述",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/peripheral/fsmc/sram/126b09248e5b007fcadf7acc",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "fcadf7accc90458fa4cab2cebf963be3",
                "useduuid": "fcadf7acc"
              }
            }
          },
          {
            "title": "LV002-XM8A51216简介",
            "url": "/sdoc/peripheral/fsmc/sram/126b09248ce51200a79d393f.html",
            "frontmatter": {
              "title": "LV002-XM8A51216简介",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/peripheral/fsmc/sram/126b09248ce51200a79d393f",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "0a79d393fee944b89889bdacfda6ea95",
                "useduuid": "0a79d393f"
              }
            }
          },
          {
            "title": "LV005-IS62WV51216简介",
            "url": "/sdoc/peripheral/fsmc/sram/126b09248db61d861c837fd7.html",
            "frontmatter": {
              "title": "LV005-IS62WV51216简介",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/peripheral/fsmc/sram/126b09248db61d861c837fd7",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "61c837fd7bf24e47b455ebbf97c03db7",
                "useduuid": "61c837fd7"
              }
            }
          },
          {
            "title": "LV015-外部SRAM读写实例",
            "url": "/sdoc/peripheral/fsmc/sram/126b0924b2d20263b97733d0.html",
            "frontmatter": {
              "title": "LV015-外部SRAM读写实例",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/peripheral/fsmc/sram/126b0924b2d20263b97733d0",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "3b97733d0c5f43148008ceafa2203f32",
                "useduuid": "3b97733d0"
              }
            }
          }
        ]
      },
      {
        "filePath": "sdoc/20-基本外设篇/25-FSMC/index",
        "path": "sdoc/20-基本外设篇/25-FSMC",
        "catalogues": [
          {
            "title": "01-FSMC基础",
            "children": [
              {
                "title": "LV001-FSMC简介",
                "url": "/sdoc/peripheral/fsmc/fsmc-basic/126b092492553b23e8704ba7.html",
                "frontmatter": {
                  "title": "LV001-FSMC简介",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/peripheral/fsmc/fsmc-basic/126b092492553b23e8704ba7",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "3e8704ba79214a3cbb9ab231d637b62e",
                    "useduuid": "3e8704ba7"
                  }
                }
              },
              {
                "title": "LV005-存储器映射与控制器",
                "url": "/sdoc/peripheral/fsmc/fsmc-basic/126b092499b000721416c9a0.html",
                "frontmatter": {
                  "title": "LV005-存储器映射与控制器",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/peripheral/fsmc/fsmc-basic/126b092499b000721416c9a0",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "21416c9a03d8478188e3897a2c59aa5e",
                    "useduuid": "21416c9a0"
                  }
                }
              },
              {
                "title": "LV010-相关HAL库函数",
                "url": "/sdoc/peripheral/fsmc/fsmc-basic/126b0924b19533081adda526.html",
                "frontmatter": {
                  "title": "LV010-相关HAL库函数",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/peripheral/fsmc/fsmc-basic/126b0924b19533081adda526",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "81adda5266e04132bfcad67ecceec69d",
                    "useduuid": "81adda526"
                  }
                }
              }
            ],
            "frontmatter": {}
          },
          {
            "title": "05-外部SRAM",
            "children": [
              {
                "title": "LV001-概述",
                "url": "/sdoc/peripheral/fsmc/sram/126b09248e5b007fcadf7acc.html",
                "frontmatter": {
                  "title": "LV001-概述",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/peripheral/fsmc/sram/126b09248e5b007fcadf7acc",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "fcadf7accc90458fa4cab2cebf963be3",
                    "useduuid": "fcadf7acc"
                  }
                }
              },
              {
                "title": "LV002-XM8A51216简介",
                "url": "/sdoc/peripheral/fsmc/sram/126b09248ce51200a79d393f.html",
                "frontmatter": {
                  "title": "LV002-XM8A51216简介",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/peripheral/fsmc/sram/126b09248ce51200a79d393f",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "0a79d393fee944b89889bdacfda6ea95",
                    "useduuid": "0a79d393f"
                  }
                }
              },
              {
                "title": "LV005-IS62WV51216简介",
                "url": "/sdoc/peripheral/fsmc/sram/126b09248db61d861c837fd7.html",
                "frontmatter": {
                  "title": "LV005-IS62WV51216简介",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/peripheral/fsmc/sram/126b09248db61d861c837fd7",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "61c837fd7bf24e47b455ebbf97c03db7",
                    "useduuid": "61c837fd7"
                  }
                }
              },
              {
                "title": "LV015-外部SRAM读写实例",
                "url": "/sdoc/peripheral/fsmc/sram/126b0924b2d20263b97733d0.html",
                "frontmatter": {
                  "title": "LV015-外部SRAM读写实例",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/peripheral/fsmc/sram/126b0924b2d20263b97733d0",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "3b97733d0c5f43148008ceafa2203f32",
                    "useduuid": "3b97733d0"
                  }
                }
              }
            ],
            "frontmatter": {}
          }
        ]
      },
      {
        "filePath": "sdoc/20-基本外设篇/30-I2C/index",
        "path": "sdoc/20-基本外设篇/30-I2C",
        "catalogues": [
          {
            "title": "LV001-STM32的I2C",
            "url": "/sdoc/peripheral/i2c/126b09344c01323883ac1ab4.html",
            "frontmatter": {
              "title": "LV001-STM32的I2C",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/peripheral/i2c/126b09344c01323883ac1ab4",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "883ac1ab454e45c8903061818823ca7f",
                "useduuid": "883ac1ab4"
              }
            }
          },
          {
            "title": "LV010-AT24C02简介",
            "url": "/sdoc/peripheral/i2c/126b09344d8f021f00cacd6c.html",
            "frontmatter": {
              "title": "LV010-AT24C02简介",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/peripheral/i2c/126b09344d8f021f00cacd6c",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "f00cacd6ccbd4a459325107dc47b447a",
                "useduuid": "f00cacd6c"
              }
            }
          },
          {
            "title": "LV015-AT24C02使用实例",
            "url": "/sdoc/peripheral/i2c/126b09344f37186302faabd7.html",
            "frontmatter": {
              "title": "LV015-AT24C02使用实例",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/peripheral/i2c/126b09344f37186302faabd7",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "302faabd7f05494cbdcffb39c1c91164",
                "useduuid": "302faabd7"
              }
            }
          }
        ]
      },
      {
        "filePath": "sdoc/20-基本外设篇/35-SPI/index",
        "path": "sdoc/20-基本外设篇/35-SPI",
        "catalogues": [
          {
            "title": "LV001-STM32的SPI",
            "url": "/sdoc/peripheral/spi/126b0950f4ae14889c830ae3.html",
            "frontmatter": {
              "title": "LV001-STM32的SPI",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/peripheral/spi/126b0950f4ae14889c830ae3",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "89c830ae3a594952be17b5abc6bbb737",
                "useduuid": "89c830ae3"
              }
            }
          },
          {
            "title": "LV010-W25QXXX简介",
            "url": "/sdoc/peripheral/spi/126b0950f64a0b5a3fbcba93.html",
            "frontmatter": {
              "title": "LV010-W25QXXX简介",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/peripheral/spi/126b0950f64a0b5a3fbcba93",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "a3fbcba93d1642329a28cddcb65ad8e8",
                "useduuid": "a3fbcba93"
              }
            }
          },
          {
            "title": "LV015-SPI读写W25QXXX实例",
            "url": "/sdoc/peripheral/spi/126b0950f849211ff053e7ff.html",
            "frontmatter": {
              "title": "LV015-SPI读写W25QXXX实例",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/peripheral/spi/126b0950f849211ff053e7ff",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "ff053e7ff3e247358beec3bab1ba61de",
                "useduuid": "ff053e7ff"
              }
            }
          }
        ]
      },
      {
        "filePath": "sdoc/20-基本外设篇/40-DMA/index",
        "path": "sdoc/20-基本外设篇/40-DMA",
        "catalogues": [
          {
            "title": "LV001-DMA简介",
            "url": "/sdoc/peripheral/dma/126b0950fbc52669af52caac.html",
            "frontmatter": {
              "title": "LV001-DMA简介",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/peripheral/dma/126b0950fbc52669af52caac",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "9af52caac91c42b1b28d2e09c22f8d43",
                "useduuid": "9af52caac"
              }
            }
          },
          {
            "title": "LV010-DMA使用实例",
            "url": "/sdoc/peripheral/dma/126b0950fc960317c7b64826.html",
            "frontmatter": {
              "title": "LV010-DMA使用实例",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/peripheral/dma/126b0950fc960317c7b64826",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "7c7b6482620b4698a5eac4b6e449f631",
                "useduuid": "7c7b64826"
              }
            }
          }
        ]
      },
      {
        "filePath": "sdoc/20-基本外设篇/50-SDIO/index",
        "path": "sdoc/20-基本外设篇/50-SDIO",
        "catalogues": [
          {
            "title": "LV001-SD卡简介",
            "url": "/sdoc/peripheral/sdio/126b0950fe110bc81c4d2fd3.html",
            "frontmatter": {
              "title": "LV001-SD卡简介",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/peripheral/sdio/126b0950fe110bc81c4d2fd3",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "81c4d2fd3b3049a1a63dd12e12b5a3fa",
                "useduuid": "81c4d2fd3"
              }
            }
          },
          {
            "title": "LV015-SD卡的操作",
            "url": "/sdoc/peripheral/sdio/126b0950ff013d660d235356.html",
            "frontmatter": {
              "title": "LV015-SD卡的操作",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/peripheral/sdio/126b0950ff013d660d235356",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "60d235356a8a41c6b5be0b1b1d22ed03",
                "useduuid": "60d235356"
              }
            }
          },
          {
            "title": "LV020-STM32的SDIO",
            "url": "/sdoc/peripheral/sdio/126b0951000d2a75b964fa55.html",
            "frontmatter": {
              "title": "LV020-STM32的SDIO",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/peripheral/sdio/126b0951000d2a75b964fa55",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "5b964fa55b1c49f2849632ac18e58758",
                "useduuid": "5b964fa55"
              }
            }
          },
          {
            "title": "LV025-读写SD卡实例",
            "url": "/sdoc/peripheral/sdio/126b095100d21af60c8ed17e.html",
            "frontmatter": {
              "title": "LV025-读写SD卡实例",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/peripheral/sdio/126b095100d21af60c8ed17e",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "60c8ed17e9a9490aaf1efe2014ac5b67",
                "useduuid": "60c8ed17e"
              }
            }
          }
        ]
      },
      {
        "filePath": "sdoc/20-基本外设篇/55-RTC时钟/index",
        "path": "sdoc/20-基本外设篇/55-RTC时钟",
        "catalogues": [
          {
            "title": "LV001-RTC简介",
            "url": "/sdoc/peripheral/rtc/126b09511eac35920a3f191c.html",
            "frontmatter": {
              "title": "LV001-RTC简介",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/peripheral/rtc/126b09511eac35920a3f191c",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "20a3f191c6054d8d9f5fd53ff7b809de",
                "useduuid": "20a3f191c"
              }
            }
          }
        ]
      },
      {
        "filePath": "sdoc/20-基本外设篇/60-USB/index",
        "path": "sdoc/20-基本外设篇/60-USB",
        "catalogues": [
          {
            "title": "LV001-USB简介",
            "url": "/sdoc/peripheral/usb/126b095167b12a8376012928.html",
            "frontmatter": {
              "title": "LV001-USB简介",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/peripheral/usb/126b095167b12a8376012928",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "3760129282bc45c68e9217915df4f46b",
                "useduuid": 376012928
              }
            }
          },
          {
            "title": "LV010-USB读卡器实例",
            "url": "/sdoc/peripheral/usb/126b095168b91d9fad5c2a07.html",
            "frontmatter": {
              "title": "LV010-USB读卡器实例",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/peripheral/usb/126b095168b91d9fad5c2a07",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "fad5c2a07ce14efe93e887b24a93fb47",
                "useduuid": "fad5c2a07"
              }
            }
          }
        ]
      },
      {
        "filePath": "sdoc/20-基本外设篇/index",
        "path": "sdoc/20-基本外设篇",
        "catalogues": [
          {
            "title": "01-GPIO",
            "children": [
              {
                "title": "LV001-STM32的GPIO简介",
                "url": "/sdoc/peripheral/gpio/126b08e802d21f6e4f658296.html",
                "frontmatter": {
                  "title": "LV001-STM32的GPIO简介",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/peripheral/gpio/126b08e802d21f6e4f658296",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "e4f658296d8f440694a80e81f31777d4",
                    "useduuid": "e4f658296"
                  }
                }
              },
              {
                "title": "LV010-输入输出模式详解",
                "url": "/sdoc/peripheral/gpio/126b08e804d303ad5b541ecd.html",
                "frontmatter": {
                  "title": "LV010-输入输出模式详解",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/peripheral/gpio/126b08e804d303ad5b541ecd",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "d5b541ecde0f4e1799e17d09e88a33fa",
                    "useduuid": "d5b541ecd"
                  }
                }
              },
              {
                "title": "LV020-GPIO控制LED",
                "url": "/sdoc/peripheral/gpio/126b08e805ca1e15c40474c4.html",
                "frontmatter": {
                  "title": "LV020-GPIO控制LED",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/peripheral/gpio/126b08e805ca1e15c40474c4",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "5c40474c47fc44e49114f4489f7fb359",
                    "useduuid": "5c40474c4"
                  }
                }
              },
              {
                "title": "LV030-按键检测",
                "url": "/sdoc/peripheral/gpio/126b08e8078f1f2b7ad1d6a6.html",
                "frontmatter": {
                  "title": "LV030-按键检测",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/peripheral/gpio/126b08e8078f1f2b7ad1d6a6",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "b7ad1d6a65df41fab1ae6bd4b2de28b9",
                    "useduuid": "b7ad1d6a6"
                  }
                }
              },
              {
                "title": "LV040-外部中断",
                "url": "/sdoc/peripheral/gpio/126b08f58a5c2c09e1d6100f.html",
                "frontmatter": {
                  "title": "LV040-外部中断",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/peripheral/gpio/126b08f58a5c2c09e1d6100f",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "9e1d6100f7d74737974bd9674a8ba8c0",
                    "useduuid": "9e1d6100f"
                  }
                }
              },
              {
                "title": "LV045-外部中断实例",
                "url": "/sdoc/peripheral/gpio/126b08f596281cc89a3bc4c6.html",
                "frontmatter": {
                  "title": "LV045-外部中断实例",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/peripheral/gpio/126b08f596281cc89a3bc4c6",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "89a3bc4c6a9b4249afce4152ca5d1241",
                    "useduuid": "89a3bc4c6"
                  }
                }
              }
            ],
            "frontmatter": {}
          },
          {
            "title": "10-UART",
            "children": [
              {
                "title": "LV001-串口通信简介",
                "url": "/sdoc/peripheral/uart/126b08f60edb3b6ac7962cbf.html",
                "frontmatter": {
                  "title": "LV001-串口通信简介",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/peripheral/uart/126b08f60edb3b6ac7962cbf",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "ac7962cbf7d245659539f5436bb59e37",
                    "useduuid": "ac7962cbf"
                  }
                }
              },
              {
                "title": "LV010-STM32的串口",
                "url": "/sdoc/peripheral/uart/126b08f6146d2d238b102738.html",
                "frontmatter": {
                  "title": "LV010-STM32的串口",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/peripheral/uart/126b08f6146d2d238b102738",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "38b1027380d146cb959e571687931c97",
                    "useduuid": "38b102738"
                  }
                }
              },
              {
                "title": "LV020-串口收发实例",
                "url": "/sdoc/peripheral/uart/126b08f61664097f4a0617fc.html",
                "frontmatter": {
                  "title": "LV020-串口收发实例",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/peripheral/uart/126b08f61664097f4a0617fc",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "f4a0617fc94447a8962e262d9db98842",
                    "useduuid": "f4a0617fc"
                  }
                }
              }
            ],
            "frontmatter": {}
          },
          {
            "title": "15-定时器",
            "children": [
              {
                "title": "LV001-基本定时器简介",
                "url": "/sdoc/peripheral/timer/basic/126b08f6a8e32e3427f3a2b2.html",
                "frontmatter": {
                  "title": "LV001-基本定时器简介",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/peripheral/timer/basic/126b08f6a8e32e3427f3a2b2",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "427f3a2b26fc476299e1f6f52f2c33ad",
                    "useduuid": "427f3a2b2"
                  }
                }
              },
              {
                "title": "LV030-通用定时器简介",
                "url": "/sdoc/peripheral/timer/126b08f6aa441b536809798e.html",
                "frontmatter": {
                  "title": "LV030-通用定时器简介",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/peripheral/timer/126b08f6aa441b536809798e",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "36809798e68046309b813b9706a23f8a",
                    "useduuid": "36809798e"
                  }
                }
              },
              {
                "title": "LV035-通用定时器的中断",
                "url": "/sdoc/peripheral/timer/126b08f6aa9f293ebbce26b2.html",
                "frontmatter": {
                  "title": "LV035-通用定时器的中断",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/peripheral/timer/126b08f6aa9f293ebbce26b2",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "ebbce26b2eed4f0e8e7db13c33566c30",
                    "useduuid": "ebbce26b2"
                  }
                }
              },
              {
                "title": "LV040-通用定时器PWM输出",
                "url": "/sdoc/peripheral/timer/126b08f6aac20ab7bc66d777.html",
                "frontmatter": {
                  "title": "LV040-通用定时器PWM输出",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/peripheral/timer/126b08f6aac20ab7bc66d777",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "7bc66d777a344e838bab8b97634f96bc",
                    "useduuid": "7bc66d777"
                  }
                }
              },
              {
                "title": "LV045-通用定时器输入捕获",
                "url": "/sdoc/peripheral/timer/126b08f6ab6404f5fdfb5648.html",
                "frontmatter": {
                  "title": "LV045-通用定时器输入捕获",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/peripheral/timer/126b08f6ab6404f5fdfb5648",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "5fdfb5648d1542adb31bc692aaebfac4",
                    "useduuid": "5fdfb5648"
                  }
                }
              },
              {
                "title": "LV050-通用定时器脉冲计数",
                "url": "/sdoc/peripheral/timer/126b08f6ab873bc74e57e381.html",
                "frontmatter": {
                  "title": "LV050-通用定时器脉冲计数",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/peripheral/timer/126b08f6ab873bc74e57e381",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "74e57e3815ac43a9b2ad64b853530fde",
                    "useduuid": "74e57e381"
                  }
                }
              },
              {
                "title": "LV070-高级定时器简介",
                "url": "/sdoc/peripheral/timer/126b08f6abf821065c6674f2.html",
                "frontmatter": {
                  "title": "LV070-高级定时器简介",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/peripheral/timer/126b08f6abf821065c6674f2",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "65c6674f24194a5c905c5931e3b1bb25",
                    "useduuid": "65c6674f2"
                  }
                }
              },
              {
                "title": "LV075-高级定时器PWM输出",
                "url": "/sdoc/peripheral/timer/126b08f6ac4f2bb02b42403e.html",
                "frontmatter": {
                  "title": "LV075-高级定时器PWM输出",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/peripheral/timer/126b08f6ac4f2bb02b42403e",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "02b42403e6334b1e88b3aefe535488bf",
                    "useduuid": "02b42403e"
                  }
                }
              },
              {
                "title": "LV080-高级定时器输出比较模式",
                "url": "/sdoc/peripheral/timer/126b08f6aca0253099c9ba29.html",
                "frontmatter": {
                  "title": "LV080-高级定时器输出比较模式",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/peripheral/timer/126b08f6aca0253099c9ba29",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "099c9ba29781487ab77ef3977ecd7122",
                    "useduuid": "099c9ba29"
                  }
                }
              },
              {
                "title": "LV085-高级定时器互补输出",
                "url": "/sdoc/peripheral/timer/126b08f6ad8f2e0487d6c438.html",
                "frontmatter": {
                  "title": "LV085-高级定时器互补输出",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/peripheral/timer/126b08f6ad8f2e0487d6c438",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "487d6c4384224a459898d149b83609e0",
                    "useduuid": "487d6c438"
                  }
                }
              },
              {
                "title": "LV090-高级定时器PWM输入",
                "url": "/sdoc/peripheral/timer/126b08f6ae2512a51a9eec42.html",
                "frontmatter": {
                  "title": "LV090-高级定时器PWM输入",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/peripheral/timer/126b08f6ae2512a51a9eec42",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "51a9eec423e4412c99aa8247ccd2092d",
                    "useduuid": "51a9eec42"
                  }
                }
              },
              {
                "title": "LV100-SysTick定时器简介",
                "url": "/sdoc/peripheral/timer/126b08f7176d34627620ad1b.html",
                "frontmatter": {
                  "title": "LV100-SysTick定时器简介",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/peripheral/timer/126b08f7176d34627620ad1b",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "27620ad1b6704f3ab64b6bc4d14b88f4",
                    "useduuid": "27620ad1b"
                  }
                }
              },
              {
                "title": "LV105-自定义延时函数",
                "url": "/sdoc/peripheral/timer/126b08f71bb31f61f9e3c819.html",
                "frontmatter": {
                  "title": "LV105-自定义延时函数",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/peripheral/timer/126b08f71bb31f61f9e3c819",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "1f9e3c81978544cfa5b36e225514bb0d",
                    "useduuid": "1f9e3c819"
                  }
                }
              }
            ],
            "frontmatter": {}
          },
          {
            "title": "20-看门狗",
            "children": [
              {
                "title": "LV001-看门狗简介",
                "url": "/sdoc/peripheral/watchdog/126b09043ae916195cb39541.html",
                "frontmatter": {
                  "title": "LV001-看门狗简介",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/peripheral/watchdog/126b09043ae916195cb39541",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "95cb3954118d49beb6d6912a9e3cb522",
                    "useduuid": "95cb39541"
                  }
                }
              },
              {
                "title": "LV010-看门狗使用实例",
                "url": "/sdoc/peripheral/watchdog/126b09043c29000296442c6e.html",
                "frontmatter": {
                  "title": "LV010-看门狗使用实例",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/peripheral/watchdog/126b09043c29000296442c6e",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "296442c6e9ba4600b39cd12075ea87af",
                    "useduuid": "296442c6e"
                  }
                }
              }
            ],
            "frontmatter": {}
          },
          {
            "title": "25-FSMC",
            "children": [
              {
                "title": "01-FSMC基础",
                "children": [
                  {
                    "title": "LV001-FSMC简介",
                    "url": "/sdoc/peripheral/fsmc/fsmc-basic/126b092492553b23e8704ba7.html",
                    "frontmatter": {
                      "title": "LV001-FSMC简介",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/peripheral/fsmc/fsmc-basic/126b092492553b23e8704ba7",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "3e8704ba79214a3cbb9ab231d637b62e",
                        "useduuid": "3e8704ba7"
                      }
                    }
                  },
                  {
                    "title": "LV005-存储器映射与控制器",
                    "url": "/sdoc/peripheral/fsmc/fsmc-basic/126b092499b000721416c9a0.html",
                    "frontmatter": {
                      "title": "LV005-存储器映射与控制器",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/peripheral/fsmc/fsmc-basic/126b092499b000721416c9a0",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "21416c9a03d8478188e3897a2c59aa5e",
                        "useduuid": "21416c9a0"
                      }
                    }
                  },
                  {
                    "title": "LV010-相关HAL库函数",
                    "url": "/sdoc/peripheral/fsmc/fsmc-basic/126b0924b19533081adda526.html",
                    "frontmatter": {
                      "title": "LV010-相关HAL库函数",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/peripheral/fsmc/fsmc-basic/126b0924b19533081adda526",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "81adda5266e04132bfcad67ecceec69d",
                        "useduuid": "81adda526"
                      }
                    }
                  }
                ],
                "frontmatter": {}
              },
              {
                "title": "05-外部SRAM",
                "children": [
                  {
                    "title": "LV001-概述",
                    "url": "/sdoc/peripheral/fsmc/sram/126b09248e5b007fcadf7acc.html",
                    "frontmatter": {
                      "title": "LV001-概述",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/peripheral/fsmc/sram/126b09248e5b007fcadf7acc",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "fcadf7accc90458fa4cab2cebf963be3",
                        "useduuid": "fcadf7acc"
                      }
                    }
                  },
                  {
                    "title": "LV002-XM8A51216简介",
                    "url": "/sdoc/peripheral/fsmc/sram/126b09248ce51200a79d393f.html",
                    "frontmatter": {
                      "title": "LV002-XM8A51216简介",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/peripheral/fsmc/sram/126b09248ce51200a79d393f",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "0a79d393fee944b89889bdacfda6ea95",
                        "useduuid": "0a79d393f"
                      }
                    }
                  },
                  {
                    "title": "LV005-IS62WV51216简介",
                    "url": "/sdoc/peripheral/fsmc/sram/126b09248db61d861c837fd7.html",
                    "frontmatter": {
                      "title": "LV005-IS62WV51216简介",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/peripheral/fsmc/sram/126b09248db61d861c837fd7",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "61c837fd7bf24e47b455ebbf97c03db7",
                        "useduuid": "61c837fd7"
                      }
                    }
                  },
                  {
                    "title": "LV015-外部SRAM读写实例",
                    "url": "/sdoc/peripheral/fsmc/sram/126b0924b2d20263b97733d0.html",
                    "frontmatter": {
                      "title": "LV015-外部SRAM读写实例",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/peripheral/fsmc/sram/126b0924b2d20263b97733d0",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "3b97733d0c5f43148008ceafa2203f32",
                        "useduuid": "3b97733d0"
                      }
                    }
                  }
                ],
                "frontmatter": {}
              }
            ],
            "frontmatter": {}
          },
          {
            "title": "30-I2C",
            "children": [
              {
                "title": "LV001-STM32的I2C",
                "url": "/sdoc/peripheral/i2c/126b09344c01323883ac1ab4.html",
                "frontmatter": {
                  "title": "LV001-STM32的I2C",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/peripheral/i2c/126b09344c01323883ac1ab4",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "883ac1ab454e45c8903061818823ca7f",
                    "useduuid": "883ac1ab4"
                  }
                }
              },
              {
                "title": "LV010-AT24C02简介",
                "url": "/sdoc/peripheral/i2c/126b09344d8f021f00cacd6c.html",
                "frontmatter": {
                  "title": "LV010-AT24C02简介",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/peripheral/i2c/126b09344d8f021f00cacd6c",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "f00cacd6ccbd4a459325107dc47b447a",
                    "useduuid": "f00cacd6c"
                  }
                }
              },
              {
                "title": "LV015-AT24C02使用实例",
                "url": "/sdoc/peripheral/i2c/126b09344f37186302faabd7.html",
                "frontmatter": {
                  "title": "LV015-AT24C02使用实例",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/peripheral/i2c/126b09344f37186302faabd7",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "302faabd7f05494cbdcffb39c1c91164",
                    "useduuid": "302faabd7"
                  }
                }
              }
            ],
            "frontmatter": {}
          },
          {
            "title": "35-SPI",
            "children": [
              {
                "title": "LV001-STM32的SPI",
                "url": "/sdoc/peripheral/spi/126b0950f4ae14889c830ae3.html",
                "frontmatter": {
                  "title": "LV001-STM32的SPI",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/peripheral/spi/126b0950f4ae14889c830ae3",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "89c830ae3a594952be17b5abc6bbb737",
                    "useduuid": "89c830ae3"
                  }
                }
              },
              {
                "title": "LV010-W25QXXX简介",
                "url": "/sdoc/peripheral/spi/126b0950f64a0b5a3fbcba93.html",
                "frontmatter": {
                  "title": "LV010-W25QXXX简介",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/peripheral/spi/126b0950f64a0b5a3fbcba93",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "a3fbcba93d1642329a28cddcb65ad8e8",
                    "useduuid": "a3fbcba93"
                  }
                }
              },
              {
                "title": "LV015-SPI读写W25QXXX实例",
                "url": "/sdoc/peripheral/spi/126b0950f849211ff053e7ff.html",
                "frontmatter": {
                  "title": "LV015-SPI读写W25QXXX实例",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/peripheral/spi/126b0950f849211ff053e7ff",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "ff053e7ff3e247358beec3bab1ba61de",
                    "useduuid": "ff053e7ff"
                  }
                }
              }
            ],
            "frontmatter": {}
          },
          {
            "title": "40-DMA",
            "children": [
              {
                "title": "LV001-DMA简介",
                "url": "/sdoc/peripheral/dma/126b0950fbc52669af52caac.html",
                "frontmatter": {
                  "title": "LV001-DMA简介",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/peripheral/dma/126b0950fbc52669af52caac",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "9af52caac91c42b1b28d2e09c22f8d43",
                    "useduuid": "9af52caac"
                  }
                }
              },
              {
                "title": "LV010-DMA使用实例",
                "url": "/sdoc/peripheral/dma/126b0950fc960317c7b64826.html",
                "frontmatter": {
                  "title": "LV010-DMA使用实例",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/peripheral/dma/126b0950fc960317c7b64826",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "7c7b6482620b4698a5eac4b6e449f631",
                    "useduuid": "7c7b64826"
                  }
                }
              }
            ],
            "frontmatter": {}
          },
          {
            "title": "50-SDIO",
            "children": [
              {
                "title": "LV001-SD卡简介",
                "url": "/sdoc/peripheral/sdio/126b0950fe110bc81c4d2fd3.html",
                "frontmatter": {
                  "title": "LV001-SD卡简介",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/peripheral/sdio/126b0950fe110bc81c4d2fd3",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "81c4d2fd3b3049a1a63dd12e12b5a3fa",
                    "useduuid": "81c4d2fd3"
                  }
                }
              },
              {
                "title": "LV015-SD卡的操作",
                "url": "/sdoc/peripheral/sdio/126b0950ff013d660d235356.html",
                "frontmatter": {
                  "title": "LV015-SD卡的操作",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/peripheral/sdio/126b0950ff013d660d235356",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "60d235356a8a41c6b5be0b1b1d22ed03",
                    "useduuid": "60d235356"
                  }
                }
              },
              {
                "title": "LV020-STM32的SDIO",
                "url": "/sdoc/peripheral/sdio/126b0951000d2a75b964fa55.html",
                "frontmatter": {
                  "title": "LV020-STM32的SDIO",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/peripheral/sdio/126b0951000d2a75b964fa55",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "5b964fa55b1c49f2849632ac18e58758",
                    "useduuid": "5b964fa55"
                  }
                }
              },
              {
                "title": "LV025-读写SD卡实例",
                "url": "/sdoc/peripheral/sdio/126b095100d21af60c8ed17e.html",
                "frontmatter": {
                  "title": "LV025-读写SD卡实例",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/peripheral/sdio/126b095100d21af60c8ed17e",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "60c8ed17e9a9490aaf1efe2014ac5b67",
                    "useduuid": "60c8ed17e"
                  }
                }
              }
            ],
            "frontmatter": {}
          },
          {
            "title": "55-RTC时钟",
            "children": [
              {
                "title": "LV001-RTC简介",
                "url": "/sdoc/peripheral/rtc/126b09511eac35920a3f191c.html",
                "frontmatter": {
                  "title": "LV001-RTC简介",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/peripheral/rtc/126b09511eac35920a3f191c",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "20a3f191c6054d8d9f5fd53ff7b809de",
                    "useduuid": "20a3f191c"
                  }
                }
              }
            ],
            "frontmatter": {}
          },
          {
            "title": "60-USB",
            "children": [
              {
                "title": "LV001-USB简介",
                "url": "/sdoc/peripheral/usb/126b095167b12a8376012928.html",
                "frontmatter": {
                  "title": "LV001-USB简介",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/peripheral/usb/126b095167b12a8376012928",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "3760129282bc45c68e9217915df4f46b",
                    "useduuid": 376012928
                  }
                }
              },
              {
                "title": "LV010-USB读卡器实例",
                "url": "/sdoc/peripheral/usb/126b095168b91d9fad5c2a07.html",
                "frontmatter": {
                  "title": "LV010-USB读卡器实例",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/peripheral/usb/126b095168b91d9fad5c2a07",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "fad5c2a07ce14efe93e887b24a93fb47",
                    "useduuid": "fad5c2a07"
                  }
                }
              }
            ],
            "frontmatter": {}
          }
        ]
      },
      {
        "filePath": "sdoc/30-进阶篇/01-文件系统/index",
        "path": "sdoc/30-进阶篇/01-文件系统",
        "catalogues": [
          {
            "title": "LV001-文件系统简介",
            "url": "/sdoc/advanced-chapter/file-system/126b0951040033e78ccbca10.html",
            "frontmatter": {
              "title": "LV001-文件系统简介",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/advanced-chapter/file-system/126b0951040033e78ccbca10",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "78ccbca106d046ecaee2de5e4c1f5766",
                "useduuid": "78ccbca10"
              }
            }
          },
          {
            "title": "LV010-FATFS简介",
            "url": "/sdoc/advanced-chapter/file-system/126b095105912fc87e8eb3f7.html",
            "frontmatter": {
              "title": "LV010-FATFS简介",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/advanced-chapter/file-system/126b095105912fc87e8eb3f7",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "87e8eb3f76b14573a4c0856bf2257669",
                "useduuid": "87e8eb3f7"
              }
            }
          },
          {
            "title": "LV015-基于SPIFLASH移植FATFS",
            "url": "/sdoc/advanced-chapter/file-system/126b0951078a03391bda267a.html",
            "frontmatter": {
              "title": "LV015-基于SPIFLASH移植FATFS",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/advanced-chapter/file-system/126b0951078a03391bda267a",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "91bda267a4934867a0b05673bbc3ef13",
                "useduuid": "91bda267a"
              }
            }
          },
          {
            "title": "LV015-基于SD卡移植FATFS",
            "url": "/sdoc/advanced-chapter/file-system/126b09511b702501a47f120c.html",
            "frontmatter": {
              "title": "LV015-基于SD卡移植FATFS",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/advanced-chapter/file-system/126b09511b702501a47f120c",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "1a47f120cd8c41b6ab06d05da2ace352",
                "useduuid": "1a47f120c"
              }
            }
          },
          {
            "title": "LV025-FATFS中自定义的一些函数",
            "url": "/sdoc/advanced-chapter/file-system/126b09511d060b54b7d725e9.html",
            "frontmatter": {
              "title": "LV025-FATFS中自定义的一些函数",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/advanced-chapter/file-system/126b09511d060b54b7d725e9",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "4b7d725e9ba54c78945189a9341e3b34",
                "useduuid": "4b7d725e9"
              }
            }
          }
        ]
      },
      {
        "filePath": "sdoc/30-进阶篇/02-ESP8266/index",
        "path": "sdoc/30-进阶篇/02-ESP8266",
        "catalogues": [
          {
            "title": "LV001-ESP8266模块简介",
            "url": "/sdoc/advanced-chapter/esp8266/126b0951502d346ca9aa7929.html",
            "frontmatter": {
              "title": "LV001-ESP8266模块简介",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/advanced-chapter/esp8266/126b0951502d346ca9aa7929",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "ca9aa79298244701abe40ba6e8a3afb0",
                "useduuid": "ca9aa7929"
              }
            }
          },
          {
            "title": "LV010-AT指令",
            "url": "/sdoc/advanced-chapter/esp8266/126b095151472d621a6605a9.html",
            "frontmatter": {
              "title": "LV010-AT指令",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/advanced-chapter/esp8266/126b095151472d621a6605a9",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "21a6605a91b34e7b87e3081f66267021",
                "useduuid": "21a6605a9"
              }
            }
          },
          {
            "title": "LV015-ESP8266固件烧录",
            "url": "/sdoc/advanced-chapter/esp8266/126b0951520814de18399844.html",
            "frontmatter": {
              "title": "LV015-ESP8266固件烧录",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/advanced-chapter/esp8266/126b0951520814de18399844",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "e18399844bf344e3bb81cdc33db73395",
                "useduuid": "e18399844"
              }
            }
          },
          {
            "title": "LV020-ATK-ESP8266使用实例",
            "url": "/sdoc/advanced-chapter/esp8266/126b095152fb04ead8380cb5.html",
            "frontmatter": {
              "title": "LV020-ATK-ESP8266使用实例",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/advanced-chapter/esp8266/126b095152fb04ead8380cb5",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "ad8380cb587c446592ab6fa1ae7318fd",
                "useduuid": "ad8380cb5"
              }
            }
          }
        ]
      },
      {
        "filePath": "sdoc/30-进阶篇/03-OV7725/index",
        "path": "sdoc/30-进阶篇/03-OV7725",
        "catalogues": [
          {
            "title": "LV001-ATK-MC6625F模块简介",
            "url": "/sdoc/advanced-chapter/ov7725/126b09516b08191a7bd0fd02.html",
            "frontmatter": {
              "title": "LV001-ATK-MC6625F模块简介",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/advanced-chapter/ov7725/126b09516b08191a7bd0fd02",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "a7bd0fd0290345cfae6ad4ff74f043f7",
                "useduuid": "a7bd0fd02"
              }
            }
          },
          {
            "title": "LV010-SCCB协议简介",
            "url": "/sdoc/advanced-chapter/ov7725/126b09516b6c2fed98855250.html",
            "frontmatter": {
              "title": "LV010-SCCB协议简介",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/advanced-chapter/ov7725/126b09516b6c2fed98855250",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "d9885525026649bdb9a31be28b79a722",
                "useduuid": "d98855250"
              }
            }
          },
          {
            "title": "LV020-OV7725简介",
            "url": "/sdoc/advanced-chapter/ov7725/126b09516bd03c413cd356e8.html",
            "frontmatter": {
              "title": "LV020-OV7725简介",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/advanced-chapter/ov7725/126b09516bd03c413cd356e8",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "13cd356e84f447f3b52ee1a287368dce",
                "useduuid": "13cd356e8"
              }
            }
          }
        ]
      },
      {
        "filePath": "sdoc/30-进阶篇/04-显示屏/01-OLED/index",
        "path": "sdoc/30-进阶篇/04-显示屏/01-OLED",
        "catalogues": [
          {
            "title": "LV001-OLED简介",
            "url": "/sdoc/advanced-chapter/display/oled/126b09516d6c2a948085516b.html",
            "frontmatter": {
              "title": "LV001-OLED简介",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/advanced-chapter/display/oled/126b09516d6c2a948085516b",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "48085516b89044b2a637057cfaac3f5c",
                "useduuid": "48085516b"
              }
            }
          },
          {
            "title": "LV010-8080时序驱动OLED",
            "url": "/sdoc/advanced-chapter/display/oled/126b09517279099247b327e5.html",
            "frontmatter": {
              "title": "LV010-8080时序驱动OLED",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/advanced-chapter/display/oled/126b09517279099247b327e5",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "247b327e5f1747919749deb8038e066d",
                "useduuid": "247b327e5"
              }
            }
          }
        ]
      },
      {
        "filePath": "sdoc/30-进阶篇/04-显示屏/02-LCD/index",
        "path": "sdoc/30-进阶篇/04-显示屏/02-LCD",
        "catalogues": [
          {
            "title": "LV001-LCD简介",
            "url": "/sdoc/advanced-chapter/display/lcd/126b0951740b3b3a3f69973e.html",
            "frontmatter": {
              "title": "LV001-LCD简介",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/advanced-chapter/display/lcd/126b0951740b3b3a3f69973e",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "a3f69973ef4142428240aba5719aeeb0",
                "useduuid": "a3f69973e"
              }
            }
          },
          {
            "title": "LV010-液晶控制原理",
            "url": "/sdoc/advanced-chapter/display/lcd/126b0951760b03320ea5c5be.html",
            "frontmatter": {
              "title": "LV010-液晶控制原理",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/advanced-chapter/display/lcd/126b0951760b03320ea5c5be",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "20ea5c5be93445288eac3b57c2e84f66",
                "useduuid": "20ea5c5be"
              }
            }
          },
          {
            "title": "LV015-ATK-MD0280模块",
            "url": "/sdoc/advanced-chapter/display/lcd/126b095237661ce983ad47b1.html",
            "frontmatter": {
              "title": "LV015-ATK-MD0280模块",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/advanced-chapter/display/lcd/126b095237661ce983ad47b1",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "983ad47b1ccb49c59396418e90556b0c",
                "useduuid": "983ad47b1"
              }
            }
          },
          {
            "title": "LV016-IL9341简介",
            "url": "/sdoc/advanced-chapter/display/lcd/126b095238ef12080fa9e2fc.html",
            "frontmatter": {
              "title": "LV016-IL9341简介",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/advanced-chapter/display/lcd/126b095238ef12080fa9e2fc",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "80fa9e2fc1c846ac9bfafe695ffc6b7d",
                "useduuid": "80fa9e2fc"
              }
            }
          },
          {
            "title": "LV020-FSMC模拟8080时序",
            "url": "/sdoc/advanced-chapter/display/lcd/126b09523c371707f0bd772f.html",
            "frontmatter": {
              "title": "LV020-FSMC模拟8080时序",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/advanced-chapter/display/lcd/126b09523c371707f0bd772f",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "7f0bd772fcbd424ab2f5aaf94abf65ff",
                "useduuid": "7f0bd772f"
              }
            }
          },
          {
            "title": "LV025-LCD显示实例",
            "url": "/sdoc/advanced-chapter/display/lcd/126b095253d9037570d31d42.html",
            "frontmatter": {
              "title": "LV025-LCD显示实例",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/advanced-chapter/display/lcd/126b095253d9037570d31d42",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "570d31d42d894e208a1fb9d5c484e257",
                "useduuid": "570d31d42"
              }
            }
          },
          {
            "title": "LV030-字符编码基础",
            "url": "/sdoc/advanced-chapter/display/lcd/126b095255800a53f67e99cc.html",
            "frontmatter": {
              "title": "LV030-字符编码基础",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/advanced-chapter/display/lcd/126b095255800a53f67e99cc",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "3f67e99cc1774328be76eff3ae429948",
                "useduuid": "3f67e99cc"
              }
            }
          },
          {
            "title": "LV035-中英文的显示",
            "url": "/sdoc/advanced-chapter/display/lcd/126b0952576b3df0941e36ed.html",
            "frontmatter": {
              "title": "LV035-中英文的显示",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/advanced-chapter/display/lcd/126b0952576b3df0941e36ed",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "0941e36ed35b4da7a71acace5c8d2e0d",
                "useduuid": "0941e36ed"
              }
            }
          },
          {
            "title": "LV040-实现任意大小字模",
            "url": "/sdoc/advanced-chapter/display/lcd/126b09525e7116330989fbcc.html",
            "frontmatter": {
              "title": "LV040-实现任意大小字模",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/advanced-chapter/display/lcd/126b09525e7116330989fbcc",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "30989fbcc8354f6baad6455294de0120",
                "useduuid": "30989fbcc"
              }
            }
          }
        ]
      },
      {
        "filePath": "sdoc/30-进阶篇/04-显示屏/index",
        "path": "sdoc/30-进阶篇/04-显示屏",
        "catalogues": [
          {
            "title": "01-OLED",
            "children": [
              {
                "title": "LV001-OLED简介",
                "url": "/sdoc/advanced-chapter/display/oled/126b09516d6c2a948085516b.html",
                "frontmatter": {
                  "title": "LV001-OLED简介",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/advanced-chapter/display/oled/126b09516d6c2a948085516b",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "48085516b89044b2a637057cfaac3f5c",
                    "useduuid": "48085516b"
                  }
                }
              },
              {
                "title": "LV010-8080时序驱动OLED",
                "url": "/sdoc/advanced-chapter/display/oled/126b09517279099247b327e5.html",
                "frontmatter": {
                  "title": "LV010-8080时序驱动OLED",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/advanced-chapter/display/oled/126b09517279099247b327e5",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "247b327e5f1747919749deb8038e066d",
                    "useduuid": "247b327e5"
                  }
                }
              }
            ],
            "frontmatter": {}
          },
          {
            "title": "02-LCD",
            "children": [
              {
                "title": "LV001-LCD简介",
                "url": "/sdoc/advanced-chapter/display/lcd/126b0951740b3b3a3f69973e.html",
                "frontmatter": {
                  "title": "LV001-LCD简介",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/advanced-chapter/display/lcd/126b0951740b3b3a3f69973e",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "a3f69973ef4142428240aba5719aeeb0",
                    "useduuid": "a3f69973e"
                  }
                }
              },
              {
                "title": "LV010-液晶控制原理",
                "url": "/sdoc/advanced-chapter/display/lcd/126b0951760b03320ea5c5be.html",
                "frontmatter": {
                  "title": "LV010-液晶控制原理",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/advanced-chapter/display/lcd/126b0951760b03320ea5c5be",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "20ea5c5be93445288eac3b57c2e84f66",
                    "useduuid": "20ea5c5be"
                  }
                }
              },
              {
                "title": "LV015-ATK-MD0280模块",
                "url": "/sdoc/advanced-chapter/display/lcd/126b095237661ce983ad47b1.html",
                "frontmatter": {
                  "title": "LV015-ATK-MD0280模块",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/advanced-chapter/display/lcd/126b095237661ce983ad47b1",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "983ad47b1ccb49c59396418e90556b0c",
                    "useduuid": "983ad47b1"
                  }
                }
              },
              {
                "title": "LV016-IL9341简介",
                "url": "/sdoc/advanced-chapter/display/lcd/126b095238ef12080fa9e2fc.html",
                "frontmatter": {
                  "title": "LV016-IL9341简介",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/advanced-chapter/display/lcd/126b095238ef12080fa9e2fc",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "80fa9e2fc1c846ac9bfafe695ffc6b7d",
                    "useduuid": "80fa9e2fc"
                  }
                }
              },
              {
                "title": "LV020-FSMC模拟8080时序",
                "url": "/sdoc/advanced-chapter/display/lcd/126b09523c371707f0bd772f.html",
                "frontmatter": {
                  "title": "LV020-FSMC模拟8080时序",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/advanced-chapter/display/lcd/126b09523c371707f0bd772f",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "7f0bd772fcbd424ab2f5aaf94abf65ff",
                    "useduuid": "7f0bd772f"
                  }
                }
              },
              {
                "title": "LV025-LCD显示实例",
                "url": "/sdoc/advanced-chapter/display/lcd/126b095253d9037570d31d42.html",
                "frontmatter": {
                  "title": "LV025-LCD显示实例",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/advanced-chapter/display/lcd/126b095253d9037570d31d42",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "570d31d42d894e208a1fb9d5c484e257",
                    "useduuid": "570d31d42"
                  }
                }
              },
              {
                "title": "LV030-字符编码基础",
                "url": "/sdoc/advanced-chapter/display/lcd/126b095255800a53f67e99cc.html",
                "frontmatter": {
                  "title": "LV030-字符编码基础",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/advanced-chapter/display/lcd/126b095255800a53f67e99cc",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "3f67e99cc1774328be76eff3ae429948",
                    "useduuid": "3f67e99cc"
                  }
                }
              },
              {
                "title": "LV035-中英文的显示",
                "url": "/sdoc/advanced-chapter/display/lcd/126b0952576b3df0941e36ed.html",
                "frontmatter": {
                  "title": "LV035-中英文的显示",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/advanced-chapter/display/lcd/126b0952576b3df0941e36ed",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "0941e36ed35b4da7a71acace5c8d2e0d",
                    "useduuid": "0941e36ed"
                  }
                }
              },
              {
                "title": "LV040-实现任意大小字模",
                "url": "/sdoc/advanced-chapter/display/lcd/126b09525e7116330989fbcc.html",
                "frontmatter": {
                  "title": "LV040-实现任意大小字模",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/advanced-chapter/display/lcd/126b09525e7116330989fbcc",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "30989fbcc8354f6baad6455294de0120",
                    "useduuid": "30989fbcc"
                  }
                }
              }
            ],
            "frontmatter": {}
          }
        ]
      },
      {
        "filePath": "sdoc/30-进阶篇/90-FreeRTOS/01-FreeRTOS简介/index",
        "path": "sdoc/30-进阶篇/90-FreeRTOS/01-FreeRTOS简介",
        "catalogues": [
          {
            "title": "LV001-FreeRTOS简介",
            "url": "/docs/126b096ee4d10f3bb564b607.html",
            "frontmatter": {
              "title": "LV001-FreeRTOS简介",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/docs/126b096ee4d10f3bb564b607",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "bb564b607089439882d4247b57282de9",
                "useduuid": "bb564b607"
              }
            }
          }
        ]
      },
      {
        "filePath": "sdoc/30-进阶篇/90-FreeRTOS/index",
        "path": "sdoc/30-进阶篇/90-FreeRTOS",
        "catalogues": [
          {
            "title": "01-FreeRTOS简介",
            "children": [
              {
                "title": "LV001-FreeRTOS简介",
                "url": "/docs/126b096ee4d10f3bb564b607.html",
                "frontmatter": {
                  "title": "LV001-FreeRTOS简介",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/docs/126b096ee4d10f3bb564b607",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "bb564b607089439882d4247b57282de9",
                    "useduuid": "bb564b607"
                  }
                }
              }
            ],
            "frontmatter": {}
          }
        ]
      },
      {
        "filePath": "sdoc/30-进阶篇/index",
        "path": "sdoc/30-进阶篇",
        "catalogues": [
          {
            "title": "01-文件系统",
            "children": [
              {
                "title": "LV001-文件系统简介",
                "url": "/sdoc/advanced-chapter/file-system/126b0951040033e78ccbca10.html",
                "frontmatter": {
                  "title": "LV001-文件系统简介",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/advanced-chapter/file-system/126b0951040033e78ccbca10",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "78ccbca106d046ecaee2de5e4c1f5766",
                    "useduuid": "78ccbca10"
                  }
                }
              },
              {
                "title": "LV010-FATFS简介",
                "url": "/sdoc/advanced-chapter/file-system/126b095105912fc87e8eb3f7.html",
                "frontmatter": {
                  "title": "LV010-FATFS简介",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/advanced-chapter/file-system/126b095105912fc87e8eb3f7",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "87e8eb3f76b14573a4c0856bf2257669",
                    "useduuid": "87e8eb3f7"
                  }
                }
              },
              {
                "title": "LV015-基于SPIFLASH移植FATFS",
                "url": "/sdoc/advanced-chapter/file-system/126b0951078a03391bda267a.html",
                "frontmatter": {
                  "title": "LV015-基于SPIFLASH移植FATFS",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/advanced-chapter/file-system/126b0951078a03391bda267a",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "91bda267a4934867a0b05673bbc3ef13",
                    "useduuid": "91bda267a"
                  }
                }
              },
              {
                "title": "LV015-基于SD卡移植FATFS",
                "url": "/sdoc/advanced-chapter/file-system/126b09511b702501a47f120c.html",
                "frontmatter": {
                  "title": "LV015-基于SD卡移植FATFS",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/advanced-chapter/file-system/126b09511b702501a47f120c",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "1a47f120cd8c41b6ab06d05da2ace352",
                    "useduuid": "1a47f120c"
                  }
                }
              },
              {
                "title": "LV025-FATFS中自定义的一些函数",
                "url": "/sdoc/advanced-chapter/file-system/126b09511d060b54b7d725e9.html",
                "frontmatter": {
                  "title": "LV025-FATFS中自定义的一些函数",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/advanced-chapter/file-system/126b09511d060b54b7d725e9",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "4b7d725e9ba54c78945189a9341e3b34",
                    "useduuid": "4b7d725e9"
                  }
                }
              }
            ],
            "frontmatter": {}
          },
          {
            "title": "02-ESP8266",
            "children": [
              {
                "title": "LV001-ESP8266模块简介",
                "url": "/sdoc/advanced-chapter/esp8266/126b0951502d346ca9aa7929.html",
                "frontmatter": {
                  "title": "LV001-ESP8266模块简介",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/advanced-chapter/esp8266/126b0951502d346ca9aa7929",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "ca9aa79298244701abe40ba6e8a3afb0",
                    "useduuid": "ca9aa7929"
                  }
                }
              },
              {
                "title": "LV010-AT指令",
                "url": "/sdoc/advanced-chapter/esp8266/126b095151472d621a6605a9.html",
                "frontmatter": {
                  "title": "LV010-AT指令",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/advanced-chapter/esp8266/126b095151472d621a6605a9",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "21a6605a91b34e7b87e3081f66267021",
                    "useduuid": "21a6605a9"
                  }
                }
              },
              {
                "title": "LV015-ESP8266固件烧录",
                "url": "/sdoc/advanced-chapter/esp8266/126b0951520814de18399844.html",
                "frontmatter": {
                  "title": "LV015-ESP8266固件烧录",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/advanced-chapter/esp8266/126b0951520814de18399844",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "e18399844bf344e3bb81cdc33db73395",
                    "useduuid": "e18399844"
                  }
                }
              },
              {
                "title": "LV020-ATK-ESP8266使用实例",
                "url": "/sdoc/advanced-chapter/esp8266/126b095152fb04ead8380cb5.html",
                "frontmatter": {
                  "title": "LV020-ATK-ESP8266使用实例",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/advanced-chapter/esp8266/126b095152fb04ead8380cb5",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "ad8380cb587c446592ab6fa1ae7318fd",
                    "useduuid": "ad8380cb5"
                  }
                }
              }
            ],
            "frontmatter": {}
          },
          {
            "title": "03-OV7725",
            "children": [
              {
                "title": "LV001-ATK-MC6625F模块简介",
                "url": "/sdoc/advanced-chapter/ov7725/126b09516b08191a7bd0fd02.html",
                "frontmatter": {
                  "title": "LV001-ATK-MC6625F模块简介",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/advanced-chapter/ov7725/126b09516b08191a7bd0fd02",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "a7bd0fd0290345cfae6ad4ff74f043f7",
                    "useduuid": "a7bd0fd02"
                  }
                }
              },
              {
                "title": "LV010-SCCB协议简介",
                "url": "/sdoc/advanced-chapter/ov7725/126b09516b6c2fed98855250.html",
                "frontmatter": {
                  "title": "LV010-SCCB协议简介",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/advanced-chapter/ov7725/126b09516b6c2fed98855250",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "d9885525026649bdb9a31be28b79a722",
                    "useduuid": "d98855250"
                  }
                }
              },
              {
                "title": "LV020-OV7725简介",
                "url": "/sdoc/advanced-chapter/ov7725/126b09516bd03c413cd356e8.html",
                "frontmatter": {
                  "title": "LV020-OV7725简介",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/advanced-chapter/ov7725/126b09516bd03c413cd356e8",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "13cd356e84f447f3b52ee1a287368dce",
                    "useduuid": "13cd356e8"
                  }
                }
              }
            ],
            "frontmatter": {}
          },
          {
            "title": "04-显示屏",
            "children": [
              {
                "title": "01-OLED",
                "children": [
                  {
                    "title": "LV001-OLED简介",
                    "url": "/sdoc/advanced-chapter/display/oled/126b09516d6c2a948085516b.html",
                    "frontmatter": {
                      "title": "LV001-OLED简介",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/advanced-chapter/display/oled/126b09516d6c2a948085516b",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "48085516b89044b2a637057cfaac3f5c",
                        "useduuid": "48085516b"
                      }
                    }
                  },
                  {
                    "title": "LV010-8080时序驱动OLED",
                    "url": "/sdoc/advanced-chapter/display/oled/126b09517279099247b327e5.html",
                    "frontmatter": {
                      "title": "LV010-8080时序驱动OLED",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/advanced-chapter/display/oled/126b09517279099247b327e5",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "247b327e5f1747919749deb8038e066d",
                        "useduuid": "247b327e5"
                      }
                    }
                  }
                ],
                "frontmatter": {}
              },
              {
                "title": "02-LCD",
                "children": [
                  {
                    "title": "LV001-LCD简介",
                    "url": "/sdoc/advanced-chapter/display/lcd/126b0951740b3b3a3f69973e.html",
                    "frontmatter": {
                      "title": "LV001-LCD简介",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/advanced-chapter/display/lcd/126b0951740b3b3a3f69973e",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "a3f69973ef4142428240aba5719aeeb0",
                        "useduuid": "a3f69973e"
                      }
                    }
                  },
                  {
                    "title": "LV010-液晶控制原理",
                    "url": "/sdoc/advanced-chapter/display/lcd/126b0951760b03320ea5c5be.html",
                    "frontmatter": {
                      "title": "LV010-液晶控制原理",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/advanced-chapter/display/lcd/126b0951760b03320ea5c5be",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "20ea5c5be93445288eac3b57c2e84f66",
                        "useduuid": "20ea5c5be"
                      }
                    }
                  },
                  {
                    "title": "LV015-ATK-MD0280模块",
                    "url": "/sdoc/advanced-chapter/display/lcd/126b095237661ce983ad47b1.html",
                    "frontmatter": {
                      "title": "LV015-ATK-MD0280模块",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/advanced-chapter/display/lcd/126b095237661ce983ad47b1",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "983ad47b1ccb49c59396418e90556b0c",
                        "useduuid": "983ad47b1"
                      }
                    }
                  },
                  {
                    "title": "LV016-IL9341简介",
                    "url": "/sdoc/advanced-chapter/display/lcd/126b095238ef12080fa9e2fc.html",
                    "frontmatter": {
                      "title": "LV016-IL9341简介",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/advanced-chapter/display/lcd/126b095238ef12080fa9e2fc",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "80fa9e2fc1c846ac9bfafe695ffc6b7d",
                        "useduuid": "80fa9e2fc"
                      }
                    }
                  },
                  {
                    "title": "LV020-FSMC模拟8080时序",
                    "url": "/sdoc/advanced-chapter/display/lcd/126b09523c371707f0bd772f.html",
                    "frontmatter": {
                      "title": "LV020-FSMC模拟8080时序",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/advanced-chapter/display/lcd/126b09523c371707f0bd772f",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "7f0bd772fcbd424ab2f5aaf94abf65ff",
                        "useduuid": "7f0bd772f"
                      }
                    }
                  },
                  {
                    "title": "LV025-LCD显示实例",
                    "url": "/sdoc/advanced-chapter/display/lcd/126b095253d9037570d31d42.html",
                    "frontmatter": {
                      "title": "LV025-LCD显示实例",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/advanced-chapter/display/lcd/126b095253d9037570d31d42",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "570d31d42d894e208a1fb9d5c484e257",
                        "useduuid": "570d31d42"
                      }
                    }
                  },
                  {
                    "title": "LV030-字符编码基础",
                    "url": "/sdoc/advanced-chapter/display/lcd/126b095255800a53f67e99cc.html",
                    "frontmatter": {
                      "title": "LV030-字符编码基础",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/advanced-chapter/display/lcd/126b095255800a53f67e99cc",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "3f67e99cc1774328be76eff3ae429948",
                        "useduuid": "3f67e99cc"
                      }
                    }
                  },
                  {
                    "title": "LV035-中英文的显示",
                    "url": "/sdoc/advanced-chapter/display/lcd/126b0952576b3df0941e36ed.html",
                    "frontmatter": {
                      "title": "LV035-中英文的显示",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/advanced-chapter/display/lcd/126b0952576b3df0941e36ed",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "0941e36ed35b4da7a71acace5c8d2e0d",
                        "useduuid": "0941e36ed"
                      }
                    }
                  },
                  {
                    "title": "LV040-实现任意大小字模",
                    "url": "/sdoc/advanced-chapter/display/lcd/126b09525e7116330989fbcc.html",
                    "frontmatter": {
                      "title": "LV040-实现任意大小字模",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/advanced-chapter/display/lcd/126b09525e7116330989fbcc",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "30989fbcc8354f6baad6455294de0120",
                        "useduuid": "30989fbcc"
                      }
                    }
                  }
                ],
                "frontmatter": {}
              }
            ],
            "frontmatter": {}
          },
          {
            "title": "90-FreeRTOS",
            "children": [
              {
                "title": "01-FreeRTOS简介",
                "children": [
                  {
                    "title": "LV001-FreeRTOS简介",
                    "url": "/docs/126b096ee4d10f3bb564b607.html",
                    "frontmatter": {
                      "title": "LV001-FreeRTOS简介",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/docs/126b096ee4d10f3bb564b607",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "bb564b607089439882d4247b57282de9",
                        "useduuid": "bb564b607"
                      }
                    }
                  }
                ],
                "frontmatter": {}
              }
            ],
            "frontmatter": {}
          }
        ]
      },
      {
        "filePath": "sdoc/60-通信专题/01-I2C协议/index",
        "path": "sdoc/60-通信专题/01-I2C协议",
        "catalogues": [
          {
            "title": "LV001-I2C简介",
            "url": "/sdoc/communication/i2c/126b09043f2d250b963bfb0d.html",
            "frontmatter": {
              "title": "LV001-I2C简介",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/communication/i2c/126b09043f2d250b963bfb0d",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "b963bfb0deb74fcaa8f060b7b084d3d8",
                "useduuid": "b963bfb0d"
              }
            }
          },
          {
            "title": "LV020-AT24C02实例分析",
            "url": "/sdoc/communication/i2c/126b09043fca31869028172d.html",
            "frontmatter": {
              "title": "LV020-AT24C02实例分析",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/communication/i2c/126b09043fca31869028172d",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "69028172daa144dcbab34851329c3348",
                "useduuid": "69028172d"
              }
            }
          }
        ]
      },
      {
        "filePath": "sdoc/60-通信专题/10-串口/index",
        "path": "sdoc/60-通信专题/10-串口",
        "catalogues": [
          {
            "title": "LV001-串口通信简介",
            "url": "/sdoc/communication/serial-port/126b0904421d06db7b197798.html",
            "frontmatter": {
              "title": "LV001-串口通信简介",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/communication/serial-port/126b0904421d06db7b197798",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "b7b197798fd74f3fb97abd23e12eb7bc",
                "useduuid": "b7b197798"
              }
            }
          },
          {
            "title": "LV020-RS232简介",
            "url": "/sdoc/communication/serial-port/126b0950f26b1afbd6db3885.html",
            "frontmatter": {
              "title": "LV020-RS232简介",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/communication/serial-port/126b0950f26b1afbd6db3885",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "bd6db38856214d8db0d0697d94245e7d",
                "useduuid": "bd6db3885"
              }
            }
          },
          {
            "title": "LV030-RS485简介",
            "url": "/sdoc/communication/serial-port/126b0950f287303e7c68cbb5.html",
            "frontmatter": {
              "title": "LV030-RS485简介",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/communication/serial-port/126b0950f287303e7c68cbb5",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "e7c68cbb501d41a4be750e720e3a5e0a",
                "useduuid": "e7c68cbb5"
              }
            }
          }
        ]
      },
      {
        "filePath": "sdoc/60-通信专题/30-SPI/index",
        "path": "sdoc/60-通信专题/30-SPI",
        "catalogues": [
          {
            "title": "LV001-SPI简介",
            "url": "/sdoc/communication/spi/126b0950dceb1d850b1e36d8.html",
            "frontmatter": {
              "title": "LV001-SPI简介",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/communication/spi/126b0950dceb1d850b1e36d8",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "50b1e36d86eb4c0e85c11fe350fcd877",
                "useduuid": "50b1e36d8"
              }
            }
          }
        ]
      },
      {
        "filePath": "sdoc/60-通信专题/40-CAN/index",
        "path": "sdoc/60-通信专题/40-CAN",
        "catalogues": [
          {
            "title": "LV001-CAN通信简介",
            "url": "/sdoc/communication/can/126b0950f34624bdf8f7407f.html",
            "frontmatter": {
              "title": "LV001-CAN通信简介",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/communication/can/126b0950f34624bdf8f7407f",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "df8f7407fc324becb0237697f4ea8f9c",
                "useduuid": "df8f7407f"
              }
            }
          }
        ]
      },
      {
        "filePath": "sdoc/60-通信专题/index",
        "path": "sdoc/60-通信专题",
        "catalogues": [
          {
            "title": "01-I2C协议",
            "children": [
              {
                "title": "LV001-I2C简介",
                "url": "/sdoc/communication/i2c/126b09043f2d250b963bfb0d.html",
                "frontmatter": {
                  "title": "LV001-I2C简介",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/communication/i2c/126b09043f2d250b963bfb0d",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "b963bfb0deb74fcaa8f060b7b084d3d8",
                    "useduuid": "b963bfb0d"
                  }
                }
              },
              {
                "title": "LV020-AT24C02实例分析",
                "url": "/sdoc/communication/i2c/126b09043fca31869028172d.html",
                "frontmatter": {
                  "title": "LV020-AT24C02实例分析",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/communication/i2c/126b09043fca31869028172d",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "69028172daa144dcbab34851329c3348",
                    "useduuid": "69028172d"
                  }
                }
              }
            ],
            "frontmatter": {}
          },
          {
            "title": "10-串口",
            "children": [
              {
                "title": "LV001-串口通信简介",
                "url": "/sdoc/communication/serial-port/126b0904421d06db7b197798.html",
                "frontmatter": {
                  "title": "LV001-串口通信简介",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/communication/serial-port/126b0904421d06db7b197798",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "b7b197798fd74f3fb97abd23e12eb7bc",
                    "useduuid": "b7b197798"
                  }
                }
              },
              {
                "title": "LV020-RS232简介",
                "url": "/sdoc/communication/serial-port/126b0950f26b1afbd6db3885.html",
                "frontmatter": {
                  "title": "LV020-RS232简介",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/communication/serial-port/126b0950f26b1afbd6db3885",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "bd6db38856214d8db0d0697d94245e7d",
                    "useduuid": "bd6db3885"
                  }
                }
              },
              {
                "title": "LV030-RS485简介",
                "url": "/sdoc/communication/serial-port/126b0950f287303e7c68cbb5.html",
                "frontmatter": {
                  "title": "LV030-RS485简介",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/communication/serial-port/126b0950f287303e7c68cbb5",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "e7c68cbb501d41a4be750e720e3a5e0a",
                    "useduuid": "e7c68cbb5"
                  }
                }
              }
            ],
            "frontmatter": {}
          },
          {
            "title": "30-SPI",
            "children": [
              {
                "title": "LV001-SPI简介",
                "url": "/sdoc/communication/spi/126b0950dceb1d850b1e36d8.html",
                "frontmatter": {
                  "title": "LV001-SPI简介",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/communication/spi/126b0950dceb1d850b1e36d8",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "50b1e36d86eb4c0e85c11fe350fcd877",
                    "useduuid": "50b1e36d8"
                  }
                }
              }
            ],
            "frontmatter": {}
          },
          {
            "title": "40-CAN",
            "children": [
              {
                "title": "LV001-CAN通信简介",
                "url": "/sdoc/communication/can/126b0950f34624bdf8f7407f.html",
                "frontmatter": {
                  "title": "LV001-CAN通信简介",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/communication/can/126b0950f34624bdf8f7407f",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "df8f7407fc324becb0237697f4ea8f9c",
                    "useduuid": "df8f7407f"
                  }
                }
              }
            ],
            "frontmatter": {}
          },
          {
            "title": "LV001-通信概述",
            "url": "/sdoc/communication/126b09043e1c12685fda3fb8.html",
            "frontmatter": {
              "title": "LV001-通信概述",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/communication/126b09043e1c12685fda3fb8",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "85fda3fb8df54e90807dd03d5831b5bf",
                "useduuid": "85fda3fb8"
              }
            }
          }
        ]
      },
      {
        "filePath": "sdoc/index",
        "path": "sdoc",
        "catalogues": [
          {
            "title": "01-开发工具",
            "children": [
              {
                "title": "01-keil",
                "children": [
                  {
                    "title": "LV001-keil简介",
                    "url": "/sdoc/dev-tool/keil/126b08a8b79e2ecaa634dd81.html",
                    "frontmatter": {
                      "title": "LV001-keil简介",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/dev-tool/keil/126b08a8b79e2ecaa634dd81",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "aa634dd813594b2686f1ae7b5b6911d4",
                        "useduuid": "aa634dd81"
                      }
                    }
                  },
                  {
                    "title": "LV002-工程创建",
                    "url": "/sdoc/dev-tool/keil/126b08aa5e32382c0ab32a01.html",
                    "frontmatter": {
                      "title": "LV002-工程创建",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/dev-tool/keil/126b08aa5e32382c0ab32a01",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "c0ab32a01a744756b6c0c3e4231ed9aa",
                        "useduuid": "c0ab32a01"
                      }
                    }
                  },
                  {
                    "title": "LV010-程序与编译",
                    "url": "/sdoc/dev-tool/keil/126b08e6a9c4187125e57a5f.html",
                    "frontmatter": {
                      "title": "LV010-程序与编译",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/dev-tool/keil/126b08e6a9c4187125e57a5f",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "125e57a5ff854ebaa58b6fff51b99a11",
                        "useduuid": "125e57a5f"
                      }
                    }
                  },
                  {
                    "title": "LV015-MDK工程文件简介",
                    "url": "/sdoc/dev-tool/keil/126b0913857d3670d6f0eef1.html",
                    "frontmatter": {
                      "title": "LV015-MDK工程文件简介",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/dev-tool/keil/126b0913857d3670d6f0eef1",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "0d6f0eef153042fc862dc752cb0e3c2d",
                        "useduuid": "0d6f0eef1"
                      }
                    }
                  },
                  {
                    "title": "LV016-Output目录文件",
                    "url": "/sdoc/dev-tool/keil/126b091384f9220a0ff9cf1d.html",
                    "frontmatter": {
                      "title": "LV016-Output目录文件",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/dev-tool/keil/126b091384f9220a0ff9cf1d",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "a0ff9cf1dff34a1790997424e34bac30",
                        "useduuid": "a0ff9cf1d"
                      }
                    }
                  },
                  {
                    "title": "LV017-Listing目录文件",
                    "url": "/sdoc/dev-tool/keil/126b0913865605b5493dc70e.html",
                    "frontmatter": {
                      "title": "LV017-Listing目录文件",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/dev-tool/keil/126b0913865605b5493dc70e",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "5493dc70ee6849e0b32a91f39d8e2488",
                        "useduuid": "5493dc70e"
                      }
                    }
                  },
                  {
                    "title": "LV020-SCT分散加载文件",
                    "url": "/sdoc/dev-tool/keil/126b08e6cfb5032dbc05b46a.html",
                    "frontmatter": {
                      "title": "LV020-SCT分散加载文件",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/dev-tool/keil/126b08e6cfb5032dbc05b46a",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "dbc05b46abca47d8a176762f5148dc50",
                        "useduuid": "dbc05b46a"
                      }
                    }
                  },
                  {
                    "title": "LV025-SCT文件应用",
                    "url": "/sdoc/dev-tool/keil/126b08e6d335070a7fd1934d.html",
                    "frontmatter": {
                      "title": "LV025-SCT文件应用",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/dev-tool/keil/126b08e6d335070a7fd1934d",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "a7fd1934dbcb4eef93f57d3dce4e0059",
                        "useduuid": "a7fd1934d"
                      }
                    }
                  },
                  {
                    "title": "LV040-在线调试",
                    "url": "/sdoc/dev-tool/keil/126b08e76d70287e70afead6.html",
                    "frontmatter": {
                      "title": "LV040-在线调试",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/dev-tool/keil/126b08e76d70287e70afead6",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "e70afead6dd14692ad3b3749eb2cad4d",
                        "useduuid": "e70afead6"
                      }
                    }
                  }
                ],
                "frontmatter": {}
              },
              {
                "title": "02-STM32Cube",
                "children": [
                  {
                    "title": "LV001-STM32CubeMX简介",
                    "url": "/sdoc/dev-tool/stm32cube/126b08aa58bc0838d250f7bd.html",
                    "frontmatter": {
                      "title": "LV001-STM32CubeMX简介",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/dev-tool/stm32cube/126b08aa58bc0838d250f7bd",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "8d250f7bdb9d4b4fb822b135635cdf20",
                        "useduuid": "8d250f7bd"
                      }
                    }
                  },
                  {
                    "title": "LV002-STM32CubeMX工程创建",
                    "url": "/sdoc/dev-tool/stm32cube/126b08aaf7c11b6e19f8d60a.html",
                    "frontmatter": {
                      "title": "LV002-STM32CubeMX工程创建",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/dev-tool/stm32cube/126b08aaf7c11b6e19f8d60a",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "e19f8d60a0f64d51a22bc5a8a04bf26f",
                        "useduuid": "e19f8d60a"
                      }
                    }
                  },
                  {
                    "title": "LV010-Makefile管理工程",
                    "url": "/sdoc/dev-tool/stm32cube/126b08e6edcf211c7df7916d.html",
                    "frontmatter": {
                      "title": "LV010-Makefile管理工程",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/dev-tool/stm32cube/126b08e6edcf211c7df7916d",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "c7df7916d51c40f295ec8bdf0e20a228",
                        "useduuid": "c7df7916d"
                      }
                    }
                  },
                  {
                    "title": "LV012-Makefile文件分析",
                    "url": "/sdoc/dev-tool/stm32cube/126b08e6ef7626b7c442bfe2.html",
                    "frontmatter": {
                      "title": "LV012-Makefile文件分析",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/dev-tool/stm32cube/126b08e6ef7626b7c442bfe2",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "7c442bfe2f7348608819bf852cebb54e",
                        "useduuid": "7c442bfe2"
                      }
                    }
                  },
                  {
                    "title": "LV040-LD链接脚本",
                    "url": "/sdoc/dev-tool/keil/126b08e6f2e40a653e71bc02.html",
                    "frontmatter": {
                      "title": "LV040-LD链接脚本",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/dev-tool/keil/126b08e6f2e40a653e71bc02",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "53e71bc02dd346aeac5749700b205317",
                        "useduuid": "53e71bc02"
                      }
                    }
                  },
                  {
                    "title": "LV030-STM32CubeIDE",
                    "url": "/sdoc/dev-tool/stm32cube/126b08e6f0211b46eabe9106.html",
                    "frontmatter": {
                      "title": "LV030-STM32CubeIDE",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/dev-tool/stm32cube/126b08e6f0211b46eabe9106",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "6eabe9106e39465d81b7853e19f74deb",
                        "useduuid": "6eabe9106"
                      }
                    }
                  }
                ],
                "frontmatter": {}
              },
              {
                "title": "10-下载与调试",
                "children": [
                  {
                    "title": "LV001-下载与调试概述",
                    "url": "/sdoc/dev-tool/burn-and-debug/126b08ab16fa3e011692369d.html",
                    "frontmatter": {
                      "title": "LV001-下载与调试概述",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/dev-tool/burn-and-debug/126b08ab16fa3e011692369d",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "11692369dc744332bc6f2569dd8ec58a",
                        "useduuid": "11692369d"
                      }
                    }
                  },
                  {
                    "title": "LV002-JLink怎么使用",
                    "url": "/sdoc/dev-tool/burn-and-debug/126b08ab15ee0921c4f7fd64.html",
                    "frontmatter": {
                      "title": "LV002-JLink怎么使用",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/dev-tool/burn-and-debug/126b08ab15ee0921c4f7fd64",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "1c4f7fd64909407cb589ad3348a0c376",
                        "useduuid": "1c4f7fd64"
                      }
                    }
                  },
                  {
                    "title": "LV010-JFlash简介",
                    "url": "/sdoc/dev-tool/burn-and-debug/126b08b7f6ce25a6c770f3b5.html",
                    "frontmatter": {
                      "title": "LV010-JFlash简介",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/dev-tool/burn-and-debug/126b08b7f6ce25a6c770f3b5",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "6c770f3b50d84d7fad7f77bc05f872fc",
                        "useduuid": "6c770f3b5"
                      }
                    }
                  },
                  {
                    "title": "LV015-STLink怎么使用",
                    "url": "/sdoc/dev-tool/burn-and-debug/126b08b9c98b11187c20e13a.html",
                    "frontmatter": {
                      "title": "LV015-STLink怎么使用",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/dev-tool/burn-and-debug/126b08b9c98b11187c20e13a",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "87c20e13a48a44dfb380f22a1b102e34",
                        "useduuid": "87c20e13a"
                      }
                    }
                  },
                  {
                    "title": "LV020-ST-LINK-Utility简介",
                    "url": "/sdoc/dev-tool/burn-and-debug/126b08b9cb90276fafba387f.html",
                    "frontmatter": {
                      "title": "LV020-ST-LINK-Utility简介",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/dev-tool/burn-and-debug/126b08b9cb90276fafba387f",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "fafba387f5f84aab849e4d8b464e22ad",
                        "useduuid": "fafba387f"
                      }
                    }
                  },
                  {
                    "title": "LV030-串口下载",
                    "url": "/sdoc/dev-tool/burn-and-debug/126b08b9cea618afd74b243b.html",
                    "frontmatter": {
                      "title": "LV030-串口下载",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/dev-tool/burn-and-debug/126b08b9cea618afd74b243b",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "fd74b243b22149fe9c55a56a7b50b6d5",
                        "useduuid": "fd74b243b"
                      }
                    }
                  }
                ],
                "frontmatter": {}
              }
            ],
            "frontmatter": {}
          },
          {
            "title": "10-基础篇",
            "children": [
              {
                "title": "01-概述",
                "children": [
                  {
                    "title": "LV001-ARM体系结构",
                    "url": "/sdoc/basic/overview/126b08ba0eae364f31526d00.html",
                    "frontmatter": {
                      "title": "LV001-ARM体系结构",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/basic/overview/126b08ba0eae364f31526d00",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "f31526d004e841cf942bb1c43e30f261",
                        "useduuid": "f31526d00"
                      }
                    }
                  },
                  {
                    "title": "LV010-常见存储器",
                    "url": "/sdoc/basic/overview/126b08ba13b3329986816cf4.html",
                    "frontmatter": {
                      "title": "LV010-常见存储器",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/basic/overview/126b08ba13b3329986816cf4",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "986816cf43ae496ea97f2ac2344cf4bc",
                        "useduuid": "986816cf4"
                      }
                    }
                  },
                  {
                    "title": "LV020-CortexM0简介",
                    "url": "/sdoc/basic/overview/126b08c738bc16b5b982661d.html",
                    "frontmatter": {
                      "title": "LV020-CortexM0简介",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/basic/overview/126b08c738bc16b5b982661d",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "5b982661dbf54e3db91954b53e220c58",
                        "useduuid": "5b982661d"
                      }
                    }
                  },
                  {
                    "title": "LV022-CortexM0存储器映射",
                    "url": "/sdoc/basic/overview/126b08e6a7051c291c1151a6.html",
                    "frontmatter": {
                      "title": "LV022-CortexM0存储器映射",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/basic/overview/126b08e6a7051c291c1151a6",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "91c1151a6b3c4a07b26e0383912b8543",
                        "useduuid": "91c1151a6"
                      }
                    }
                  },
                  {
                    "title": "LV030-CortexM3简介",
                    "url": "/sdoc/basic/overview/126b08c73a222946645cba90.html",
                    "frontmatter": {
                      "title": "LV030-CortexM3简介",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/basic/overview/126b08c73a222946645cba90",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "6645cba90f414432ac823c9d1938fc37",
                        "useduuid": "6645cba90"
                      }
                    }
                  },
                  {
                    "title": "LV035-CortexM3存储器系统",
                    "url": "/sdoc/basic/overview/126b08c73d361161792b640a.html",
                    "frontmatter": {
                      "title": "LV035-CortexM3存储器系统",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/basic/overview/126b08c73d361161792b640a",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "1792b640ad2b40c1a34cc0ea4da24ed9",
                        "useduuid": "1792b640a"
                      }
                    }
                  },
                  {
                    "title": "LV040-CortexM3异常",
                    "url": "/sdoc/basic/overview/126b08e5d7b911b28ed9ee4c.html",
                    "frontmatter": {
                      "title": "LV040-CortexM3异常",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/basic/overview/126b08e5d7b911b28ed9ee4c",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "28ed9ee4c4ee4374a05b403be9d08519",
                        "useduuid": "28ed9ee4c"
                      }
                    }
                  },
                  {
                    "title": "LV040-CortexM3的NVIC中断控制",
                    "url": "/sdoc/basic/overview/126b08e5fb5429a0009ffc8b.html",
                    "frontmatter": {
                      "title": "LV040-CortexM3的NVIC中断控制",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/basic/overview/126b08e5fb5429a0009ffc8b",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "0009ffc8b07a4e459a29f0ba0518592b",
                        "useduuid": "0009ffc8b"
                      }
                    }
                  }
                ],
                "frontmatter": {}
              },
              {
                "title": "10-STM32基础",
                "children": [
                  {
                    "title": "LV001-STM32概述",
                    "url": "/sdoc/basic/stm32basic/126b08e5feaa2043ad05a48e.html",
                    "frontmatter": {
                      "title": "LV001-STM32概述",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/basic/stm32basic/126b08e5feaa2043ad05a48e",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "3ad05a48eac840679287e1b2301b039a",
                        "useduuid": "3ad05a48e"
                      }
                    }
                  },
                  {
                    "title": "LV010-嵌入式C语言",
                    "url": "/sdoc/basic/stm32basic/126b08e600543a33cc0a657a.html",
                    "frontmatter": {
                      "title": "LV010-嵌入式C语言",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/basic/stm32basic/126b08e600543a33cc0a657a",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "3cc0a657a05d403785cc85fa30a99505",
                        "useduuid": "3cc0a657a"
                      }
                    }
                  },
                  {
                    "title": "LV020-STM32怎么开发",
                    "url": "/sdoc/basic/stm32basic/126b08e603011c2e21862cc6.html",
                    "frontmatter": {
                      "title": "LV020-STM32怎么开发",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/basic/stm32basic/126b08e603011c2e21862cc6",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "e21862cc6b54423c827258b8732bcdd8",
                        "useduuid": "e21862cc6"
                      }
                    }
                  },
                  {
                    "title": "LV021-认识HAL库",
                    "url": "/sdoc/basic/stm32basic/126b08e608d01035e7260fce.html",
                    "frontmatter": {
                      "title": "LV021-认识HAL库",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/basic/stm32basic/126b08e608d01035e7260fce",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "5e7260fce3184ab293e2a218bc58687b",
                        "useduuid": "5e7260fce"
                      }
                    }
                  },
                  {
                    "title": "LV030-STM32程序下载",
                    "url": "/sdoc/basic/stm32basic/126b08e7828f108bc0b2f2dc.html",
                    "frontmatter": {
                      "title": "LV030-STM32程序下载",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/basic/stm32basic/126b08e7828f108bc0b2f2dc",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "bc0b2f2dc98042cb8e44dc7aa1995faa",
                        "useduuid": "bc0b2f2dc"
                      }
                    }
                  },
                  {
                    "title": "LV040-STM32系统架构",
                    "url": "/sdoc/basic/stm32basic/126b08e6831f0a0031c3f015.html",
                    "frontmatter": {
                      "title": "LV040-STM32系统架构",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/basic/stm32basic/126b08e6831f0a0031c3f015",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "031c3f0159bd41bfa7f2e89f6b50e340",
                        "useduuid": "031c3f015"
                      }
                    }
                  },
                  {
                    "title": "LV045-STM32存储器系统",
                    "url": "/sdoc/basic/stm32basic/126b08e6840f3457e72c8780.html",
                    "frontmatter": {
                      "title": "LV045-STM32存储器系统",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/basic/stm32basic/126b08e6840f3457e72c8780",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "7e72c87803ee4322bcd1072590f70cb3",
                        "useduuid": "7e72c8780"
                      }
                    }
                  },
                  {
                    "title": "LV050-STM32地址重映射",
                    "url": "/sdoc/basic/stm32basic/126b08e6a53918eab18839bd.html",
                    "frontmatter": {
                      "title": "LV050-STM32地址重映射",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/basic/stm32basic/126b08e6a53918eab18839bd",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "ab18839bd52b440b9ca51fa34ea3d714",
                        "useduuid": "ab18839bd"
                      }
                    }
                  }
                ],
                "frontmatter": {}
              },
              {
                "title": "20-STM32的启动",
                "children": [
                  {
                    "title": "LV001-启动文件",
                    "url": "/sdoc/basic/stm32setup/126b08e788e83383285742cb.html",
                    "frontmatter": {
                      "title": "LV001-启动文件",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/basic/stm32setup/126b08e788e83383285742cb",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "3285742cb8d24fba98867646d8e8231b",
                        "useduuid": "3285742cb"
                      }
                    }
                  },
                  {
                    "title": "LV005-启动过程",
                    "url": "/sdoc/basic/stm32setup/126b08e78de70b59cd9ba362.html",
                    "frontmatter": {
                      "title": "LV005-启动过程",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/basic/stm32setup/126b08e78de70b59cd9ba362",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "9cd9ba36208d49f99352645293a0d904",
                        "useduuid": "9cd9ba362"
                      }
                    }
                  },
                  {
                    "title": "LV010-在内部SRAM调试",
                    "url": "/sdoc/basic/stm32setup/126b08e7afad049a561ccf1b.html",
                    "frontmatter": {
                      "title": "LV010-在内部SRAM调试",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/basic/stm32setup/126b08e7afad049a561ccf1b",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "a561ccf1b5d3443c85b0f21280803c3a",
                        "useduuid": "a561ccf1b"
                      }
                    }
                  }
                ],
                "frontmatter": {}
              },
              {
                "title": "30-STM32的中断",
                "children": [
                  {
                    "title": "LV001-STM32中断简介",
                    "url": "/sdoc/basic/stm32interrupt/126b08f57241322fa604782d.html",
                    "frontmatter": {
                      "title": "LV001-STM32中断简介",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/basic/stm32interrupt/126b08f57241322fa604782d",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "fa604782d9e94117829d0f1a00c0d99d",
                        "useduuid": "fa604782d"
                      }
                    }
                  }
                ],
                "frontmatter": {}
              },
              {
                "title": "40-STM32时钟",
                "children": [
                  {
                    "title": "LV001-STM32F1时钟系统",
                    "url": "/sdoc/basic/stm32clock/126b08f5d89727a6ee395582.html",
                    "frontmatter": {
                      "title": "LV001-STM32F1时钟系统",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/basic/stm32clock/126b08f5d89727a6ee395582",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "6ee395582b8f401e806f3f6b8aac7e4a",
                        "useduuid": "6ee395582"
                      }
                    }
                  },
                  {
                    "title": "LV010-STM32F1的SYSCLK",
                    "url": "/sdoc/basic/stm32clock/126b08f5dcd1392ef8558043.html",
                    "frontmatter": {
                      "title": "LV010-STM32F1的SYSCLK",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/basic/stm32clock/126b08f5dcd1392ef8558043",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "ef8558043211434e9696dd7586e40951",
                        "useduuid": "ef8558043"
                      }
                    }
                  }
                ],
                "frontmatter": {}
              },
              {
                "title": "50-STM32内部FLASH",
                "children": [
                  {
                    "title": "LV001-内部FLASH简介",
                    "url": "/sdoc/basic/stm32flash/126b09345207167f3ed95339.html",
                    "frontmatter": {
                      "title": "LV001-内部FLASH简介",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/basic/stm32flash/126b09345207167f3ed95339",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "f3ed95339a054335bd7861fbbdfca984",
                        "useduuid": "f3ed95339"
                      }
                    }
                  },
                  {
                    "title": "LV010-FLASH操作流程",
                    "url": "/sdoc/basic/stm32flash/126b0934555e1e98aa9081c5.html",
                    "frontmatter": {
                      "title": "LV010-FLASH操作流程",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/basic/stm32flash/126b0934555e1e98aa9081c5",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "8aa9081c5bfb4658bc14302518ab96b3",
                        "useduuid": "8aa9081c5"
                      }
                    }
                  },
                  {
                    "title": "LV020-IAP编程简介",
                    "url": "/sdoc/basic/stm32flash/126b0e26745a3124f27972bd.html",
                    "frontmatter": {
                      "title": "LV020-IAP编程简介",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/basic/stm32flash/126b0e26745a3124f27972bd",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "4f27972bd3fc4860b4605d3ba9d93bb7",
                        "useduuid": "4f27972bd"
                      }
                    }
                  },
                  {
                    "title": "LV025-IAP编程实现",
                    "url": "/sdoc/basic/stm32flash/126b0e4540061175c7584cc2.html",
                    "frontmatter": {
                      "title": "LV025-IAP编程实现",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/basic/stm32flash/126b0e4540061175c7584cc2",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "5c7584cc23ea451aaa122d51f3053c7c",
                        "useduuid": "5c7584cc2"
                      }
                    }
                  }
                ],
                "frontmatter": {}
              },
              {
                "title": "60-STM32的内存",
                "children": [
                  {
                    "title": "LV001-STM32内存简介",
                    "url": "/sdoc/basic/stm32memory/126b0941431c016e4bdd2a68.html",
                    "frontmatter": {
                      "title": "LV001-STM32内存简介",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/basic/stm32memory/126b0941431c016e4bdd2a68",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "e4bdd2a68030419b91dea7af452724aa",
                        "useduuid": "e4bdd2a68"
                      }
                    }
                  },
                  {
                    "title": "LV010-内存管理",
                    "url": "/sdoc/basic/stm32memory/126b0e24d5e326e3a7296e85.html",
                    "frontmatter": {
                      "title": "LV010-内存管理",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/basic/stm32memory/126b0e24d5e326e3a7296e85",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "3a7296e85ae54af393dd0790947698ce",
                        "useduuid": "3a7296e85"
                      }
                    }
                  }
                ],
                "frontmatter": {}
              },
              {
                "title": "70-STM32电源管理",
                "children": [
                  {
                    "title": "LV001-电源管理简介",
                    "url": "/sdoc/basic/stm32pwr/126b09513f17393c50358806.html",
                    "frontmatter": {
                      "title": "LV001-电源管理简介",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/basic/stm32pwr/126b09513f17393c50358806",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "c503588060cf485a965221f48977e91d",
                        "useduuid": "c50358806"
                      }
                    }
                  },
                  {
                    "title": "LV010-三种模式实现",
                    "url": "/sdoc/basic/stm32pwr/126b095140443bc89b1ebe84.html",
                    "frontmatter": {
                      "title": "LV010-三种模式实现",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/basic/stm32pwr/126b095140443bc89b1ebe84",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "89b1ebe841074780aa0a2abaac3caa24",
                        "useduuid": "89b1ebe84"
                      }
                    }
                  }
                ],
                "frontmatter": {}
              }
            ],
            "frontmatter": {}
          },
          {
            "title": "20-基本外设篇",
            "children": [
              {
                "title": "01-GPIO",
                "children": [
                  {
                    "title": "LV001-STM32的GPIO简介",
                    "url": "/sdoc/peripheral/gpio/126b08e802d21f6e4f658296.html",
                    "frontmatter": {
                      "title": "LV001-STM32的GPIO简介",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/peripheral/gpio/126b08e802d21f6e4f658296",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "e4f658296d8f440694a80e81f31777d4",
                        "useduuid": "e4f658296"
                      }
                    }
                  },
                  {
                    "title": "LV010-输入输出模式详解",
                    "url": "/sdoc/peripheral/gpio/126b08e804d303ad5b541ecd.html",
                    "frontmatter": {
                      "title": "LV010-输入输出模式详解",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/peripheral/gpio/126b08e804d303ad5b541ecd",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "d5b541ecde0f4e1799e17d09e88a33fa",
                        "useduuid": "d5b541ecd"
                      }
                    }
                  },
                  {
                    "title": "LV020-GPIO控制LED",
                    "url": "/sdoc/peripheral/gpio/126b08e805ca1e15c40474c4.html",
                    "frontmatter": {
                      "title": "LV020-GPIO控制LED",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/peripheral/gpio/126b08e805ca1e15c40474c4",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "5c40474c47fc44e49114f4489f7fb359",
                        "useduuid": "5c40474c4"
                      }
                    }
                  },
                  {
                    "title": "LV030-按键检测",
                    "url": "/sdoc/peripheral/gpio/126b08e8078f1f2b7ad1d6a6.html",
                    "frontmatter": {
                      "title": "LV030-按键检测",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/peripheral/gpio/126b08e8078f1f2b7ad1d6a6",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "b7ad1d6a65df41fab1ae6bd4b2de28b9",
                        "useduuid": "b7ad1d6a6"
                      }
                    }
                  },
                  {
                    "title": "LV040-外部中断",
                    "url": "/sdoc/peripheral/gpio/126b08f58a5c2c09e1d6100f.html",
                    "frontmatter": {
                      "title": "LV040-外部中断",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/peripheral/gpio/126b08f58a5c2c09e1d6100f",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "9e1d6100f7d74737974bd9674a8ba8c0",
                        "useduuid": "9e1d6100f"
                      }
                    }
                  },
                  {
                    "title": "LV045-外部中断实例",
                    "url": "/sdoc/peripheral/gpio/126b08f596281cc89a3bc4c6.html",
                    "frontmatter": {
                      "title": "LV045-外部中断实例",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/peripheral/gpio/126b08f596281cc89a3bc4c6",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "89a3bc4c6a9b4249afce4152ca5d1241",
                        "useduuid": "89a3bc4c6"
                      }
                    }
                  }
                ],
                "frontmatter": {}
              },
              {
                "title": "10-UART",
                "children": [
                  {
                    "title": "LV001-串口通信简介",
                    "url": "/sdoc/peripheral/uart/126b08f60edb3b6ac7962cbf.html",
                    "frontmatter": {
                      "title": "LV001-串口通信简介",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/peripheral/uart/126b08f60edb3b6ac7962cbf",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "ac7962cbf7d245659539f5436bb59e37",
                        "useduuid": "ac7962cbf"
                      }
                    }
                  },
                  {
                    "title": "LV010-STM32的串口",
                    "url": "/sdoc/peripheral/uart/126b08f6146d2d238b102738.html",
                    "frontmatter": {
                      "title": "LV010-STM32的串口",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/peripheral/uart/126b08f6146d2d238b102738",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "38b1027380d146cb959e571687931c97",
                        "useduuid": "38b102738"
                      }
                    }
                  },
                  {
                    "title": "LV020-串口收发实例",
                    "url": "/sdoc/peripheral/uart/126b08f61664097f4a0617fc.html",
                    "frontmatter": {
                      "title": "LV020-串口收发实例",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/peripheral/uart/126b08f61664097f4a0617fc",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "f4a0617fc94447a8962e262d9db98842",
                        "useduuid": "f4a0617fc"
                      }
                    }
                  }
                ],
                "frontmatter": {}
              },
              {
                "title": "15-定时器",
                "children": [
                  {
                    "title": "LV001-基本定时器简介",
                    "url": "/sdoc/peripheral/timer/basic/126b08f6a8e32e3427f3a2b2.html",
                    "frontmatter": {
                      "title": "LV001-基本定时器简介",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/peripheral/timer/basic/126b08f6a8e32e3427f3a2b2",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "427f3a2b26fc476299e1f6f52f2c33ad",
                        "useduuid": "427f3a2b2"
                      }
                    }
                  },
                  {
                    "title": "LV030-通用定时器简介",
                    "url": "/sdoc/peripheral/timer/126b08f6aa441b536809798e.html",
                    "frontmatter": {
                      "title": "LV030-通用定时器简介",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/peripheral/timer/126b08f6aa441b536809798e",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "36809798e68046309b813b9706a23f8a",
                        "useduuid": "36809798e"
                      }
                    }
                  },
                  {
                    "title": "LV035-通用定时器的中断",
                    "url": "/sdoc/peripheral/timer/126b08f6aa9f293ebbce26b2.html",
                    "frontmatter": {
                      "title": "LV035-通用定时器的中断",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/peripheral/timer/126b08f6aa9f293ebbce26b2",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "ebbce26b2eed4f0e8e7db13c33566c30",
                        "useduuid": "ebbce26b2"
                      }
                    }
                  },
                  {
                    "title": "LV040-通用定时器PWM输出",
                    "url": "/sdoc/peripheral/timer/126b08f6aac20ab7bc66d777.html",
                    "frontmatter": {
                      "title": "LV040-通用定时器PWM输出",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/peripheral/timer/126b08f6aac20ab7bc66d777",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "7bc66d777a344e838bab8b97634f96bc",
                        "useduuid": "7bc66d777"
                      }
                    }
                  },
                  {
                    "title": "LV045-通用定时器输入捕获",
                    "url": "/sdoc/peripheral/timer/126b08f6ab6404f5fdfb5648.html",
                    "frontmatter": {
                      "title": "LV045-通用定时器输入捕获",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/peripheral/timer/126b08f6ab6404f5fdfb5648",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "5fdfb5648d1542adb31bc692aaebfac4",
                        "useduuid": "5fdfb5648"
                      }
                    }
                  },
                  {
                    "title": "LV050-通用定时器脉冲计数",
                    "url": "/sdoc/peripheral/timer/126b08f6ab873bc74e57e381.html",
                    "frontmatter": {
                      "title": "LV050-通用定时器脉冲计数",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/peripheral/timer/126b08f6ab873bc74e57e381",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "74e57e3815ac43a9b2ad64b853530fde",
                        "useduuid": "74e57e381"
                      }
                    }
                  },
                  {
                    "title": "LV070-高级定时器简介",
                    "url": "/sdoc/peripheral/timer/126b08f6abf821065c6674f2.html",
                    "frontmatter": {
                      "title": "LV070-高级定时器简介",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/peripheral/timer/126b08f6abf821065c6674f2",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "65c6674f24194a5c905c5931e3b1bb25",
                        "useduuid": "65c6674f2"
                      }
                    }
                  },
                  {
                    "title": "LV075-高级定时器PWM输出",
                    "url": "/sdoc/peripheral/timer/126b08f6ac4f2bb02b42403e.html",
                    "frontmatter": {
                      "title": "LV075-高级定时器PWM输出",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/peripheral/timer/126b08f6ac4f2bb02b42403e",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "02b42403e6334b1e88b3aefe535488bf",
                        "useduuid": "02b42403e"
                      }
                    }
                  },
                  {
                    "title": "LV080-高级定时器输出比较模式",
                    "url": "/sdoc/peripheral/timer/126b08f6aca0253099c9ba29.html",
                    "frontmatter": {
                      "title": "LV080-高级定时器输出比较模式",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/peripheral/timer/126b08f6aca0253099c9ba29",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "099c9ba29781487ab77ef3977ecd7122",
                        "useduuid": "099c9ba29"
                      }
                    }
                  },
                  {
                    "title": "LV085-高级定时器互补输出",
                    "url": "/sdoc/peripheral/timer/126b08f6ad8f2e0487d6c438.html",
                    "frontmatter": {
                      "title": "LV085-高级定时器互补输出",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/peripheral/timer/126b08f6ad8f2e0487d6c438",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "487d6c4384224a459898d149b83609e0",
                        "useduuid": "487d6c438"
                      }
                    }
                  },
                  {
                    "title": "LV090-高级定时器PWM输入",
                    "url": "/sdoc/peripheral/timer/126b08f6ae2512a51a9eec42.html",
                    "frontmatter": {
                      "title": "LV090-高级定时器PWM输入",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/peripheral/timer/126b08f6ae2512a51a9eec42",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "51a9eec423e4412c99aa8247ccd2092d",
                        "useduuid": "51a9eec42"
                      }
                    }
                  },
                  {
                    "title": "LV100-SysTick定时器简介",
                    "url": "/sdoc/peripheral/timer/126b08f7176d34627620ad1b.html",
                    "frontmatter": {
                      "title": "LV100-SysTick定时器简介",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/peripheral/timer/126b08f7176d34627620ad1b",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "27620ad1b6704f3ab64b6bc4d14b88f4",
                        "useduuid": "27620ad1b"
                      }
                    }
                  },
                  {
                    "title": "LV105-自定义延时函数",
                    "url": "/sdoc/peripheral/timer/126b08f71bb31f61f9e3c819.html",
                    "frontmatter": {
                      "title": "LV105-自定义延时函数",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/peripheral/timer/126b08f71bb31f61f9e3c819",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "1f9e3c81978544cfa5b36e225514bb0d",
                        "useduuid": "1f9e3c819"
                      }
                    }
                  }
                ],
                "frontmatter": {}
              },
              {
                "title": "20-看门狗",
                "children": [
                  {
                    "title": "LV001-看门狗简介",
                    "url": "/sdoc/peripheral/watchdog/126b09043ae916195cb39541.html",
                    "frontmatter": {
                      "title": "LV001-看门狗简介",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/peripheral/watchdog/126b09043ae916195cb39541",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "95cb3954118d49beb6d6912a9e3cb522",
                        "useduuid": "95cb39541"
                      }
                    }
                  },
                  {
                    "title": "LV010-看门狗使用实例",
                    "url": "/sdoc/peripheral/watchdog/126b09043c29000296442c6e.html",
                    "frontmatter": {
                      "title": "LV010-看门狗使用实例",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/peripheral/watchdog/126b09043c29000296442c6e",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "296442c6e9ba4600b39cd12075ea87af",
                        "useduuid": "296442c6e"
                      }
                    }
                  }
                ],
                "frontmatter": {}
              },
              {
                "title": "25-FSMC",
                "children": [
                  {
                    "title": "01-FSMC基础",
                    "children": [
                      {
                        "title": "LV001-FSMC简介",
                        "url": "/sdoc/peripheral/fsmc/fsmc-basic/126b092492553b23e8704ba7.html",
                        "frontmatter": {
                          "title": "LV001-FSMC简介",
                          "date": {},
                          "icon": "famicons:logo-markdown",
                          "permalink": "/sdoc/peripheral/fsmc/fsmc-basic/126b092492553b23e8704ba7",
                          "index": true,
                          "tags": null,
                          "categories": null,
                          "copyright": false,
                          "keywords": null,
                          "cover": null,
                          "comments": null,
                          "mathjax": null,
                          "top": null,
                          "description": null,
                          "tdoc": {
                            "detailDate": {},
                            "fulluuid": "3e8704ba79214a3cbb9ab231d637b62e",
                            "useduuid": "3e8704ba7"
                          }
                        }
                      },
                      {
                        "title": "LV005-存储器映射与控制器",
                        "url": "/sdoc/peripheral/fsmc/fsmc-basic/126b092499b000721416c9a0.html",
                        "frontmatter": {
                          "title": "LV005-存储器映射与控制器",
                          "date": {},
                          "icon": "famicons:logo-markdown",
                          "permalink": "/sdoc/peripheral/fsmc/fsmc-basic/126b092499b000721416c9a0",
                          "index": true,
                          "tags": null,
                          "categories": null,
                          "copyright": false,
                          "keywords": null,
                          "cover": null,
                          "comments": null,
                          "mathjax": null,
                          "top": null,
                          "description": null,
                          "tdoc": {
                            "detailDate": {},
                            "fulluuid": "21416c9a03d8478188e3897a2c59aa5e",
                            "useduuid": "21416c9a0"
                          }
                        }
                      },
                      {
                        "title": "LV010-相关HAL库函数",
                        "url": "/sdoc/peripheral/fsmc/fsmc-basic/126b0924b19533081adda526.html",
                        "frontmatter": {
                          "title": "LV010-相关HAL库函数",
                          "date": {},
                          "icon": "famicons:logo-markdown",
                          "permalink": "/sdoc/peripheral/fsmc/fsmc-basic/126b0924b19533081adda526",
                          "index": true,
                          "tags": null,
                          "categories": null,
                          "copyright": false,
                          "keywords": null,
                          "cover": null,
                          "comments": null,
                          "mathjax": null,
                          "top": null,
                          "description": null,
                          "tdoc": {
                            "detailDate": {},
                            "fulluuid": "81adda5266e04132bfcad67ecceec69d",
                            "useduuid": "81adda526"
                          }
                        }
                      }
                    ],
                    "frontmatter": {}
                  },
                  {
                    "title": "05-外部SRAM",
                    "children": [
                      {
                        "title": "LV001-概述",
                        "url": "/sdoc/peripheral/fsmc/sram/126b09248e5b007fcadf7acc.html",
                        "frontmatter": {
                          "title": "LV001-概述",
                          "date": {},
                          "icon": "famicons:logo-markdown",
                          "permalink": "/sdoc/peripheral/fsmc/sram/126b09248e5b007fcadf7acc",
                          "index": true,
                          "tags": null,
                          "categories": null,
                          "copyright": false,
                          "keywords": null,
                          "cover": null,
                          "comments": null,
                          "mathjax": null,
                          "top": null,
                          "description": null,
                          "tdoc": {
                            "detailDate": {},
                            "fulluuid": "fcadf7accc90458fa4cab2cebf963be3",
                            "useduuid": "fcadf7acc"
                          }
                        }
                      },
                      {
                        "title": "LV002-XM8A51216简介",
                        "url": "/sdoc/peripheral/fsmc/sram/126b09248ce51200a79d393f.html",
                        "frontmatter": {
                          "title": "LV002-XM8A51216简介",
                          "date": {},
                          "icon": "famicons:logo-markdown",
                          "permalink": "/sdoc/peripheral/fsmc/sram/126b09248ce51200a79d393f",
                          "index": true,
                          "tags": null,
                          "categories": null,
                          "copyright": false,
                          "keywords": null,
                          "cover": null,
                          "comments": null,
                          "mathjax": null,
                          "top": null,
                          "description": null,
                          "tdoc": {
                            "detailDate": {},
                            "fulluuid": "0a79d393fee944b89889bdacfda6ea95",
                            "useduuid": "0a79d393f"
                          }
                        }
                      },
                      {
                        "title": "LV005-IS62WV51216简介",
                        "url": "/sdoc/peripheral/fsmc/sram/126b09248db61d861c837fd7.html",
                        "frontmatter": {
                          "title": "LV005-IS62WV51216简介",
                          "date": {},
                          "icon": "famicons:logo-markdown",
                          "permalink": "/sdoc/peripheral/fsmc/sram/126b09248db61d861c837fd7",
                          "index": true,
                          "tags": null,
                          "categories": null,
                          "copyright": false,
                          "keywords": null,
                          "cover": null,
                          "comments": null,
                          "mathjax": null,
                          "top": null,
                          "description": null,
                          "tdoc": {
                            "detailDate": {},
                            "fulluuid": "61c837fd7bf24e47b455ebbf97c03db7",
                            "useduuid": "61c837fd7"
                          }
                        }
                      },
                      {
                        "title": "LV015-外部SRAM读写实例",
                        "url": "/sdoc/peripheral/fsmc/sram/126b0924b2d20263b97733d0.html",
                        "frontmatter": {
                          "title": "LV015-外部SRAM读写实例",
                          "date": {},
                          "icon": "famicons:logo-markdown",
                          "permalink": "/sdoc/peripheral/fsmc/sram/126b0924b2d20263b97733d0",
                          "index": true,
                          "tags": null,
                          "categories": null,
                          "copyright": false,
                          "keywords": null,
                          "cover": null,
                          "comments": null,
                          "mathjax": null,
                          "top": null,
                          "description": null,
                          "tdoc": {
                            "detailDate": {},
                            "fulluuid": "3b97733d0c5f43148008ceafa2203f32",
                            "useduuid": "3b97733d0"
                          }
                        }
                      }
                    ],
                    "frontmatter": {}
                  }
                ],
                "frontmatter": {}
              },
              {
                "title": "30-I2C",
                "children": [
                  {
                    "title": "LV001-STM32的I2C",
                    "url": "/sdoc/peripheral/i2c/126b09344c01323883ac1ab4.html",
                    "frontmatter": {
                      "title": "LV001-STM32的I2C",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/peripheral/i2c/126b09344c01323883ac1ab4",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "883ac1ab454e45c8903061818823ca7f",
                        "useduuid": "883ac1ab4"
                      }
                    }
                  },
                  {
                    "title": "LV010-AT24C02简介",
                    "url": "/sdoc/peripheral/i2c/126b09344d8f021f00cacd6c.html",
                    "frontmatter": {
                      "title": "LV010-AT24C02简介",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/peripheral/i2c/126b09344d8f021f00cacd6c",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "f00cacd6ccbd4a459325107dc47b447a",
                        "useduuid": "f00cacd6c"
                      }
                    }
                  },
                  {
                    "title": "LV015-AT24C02使用实例",
                    "url": "/sdoc/peripheral/i2c/126b09344f37186302faabd7.html",
                    "frontmatter": {
                      "title": "LV015-AT24C02使用实例",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/peripheral/i2c/126b09344f37186302faabd7",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "302faabd7f05494cbdcffb39c1c91164",
                        "useduuid": "302faabd7"
                      }
                    }
                  }
                ],
                "frontmatter": {}
              },
              {
                "title": "35-SPI",
                "children": [
                  {
                    "title": "LV001-STM32的SPI",
                    "url": "/sdoc/peripheral/spi/126b0950f4ae14889c830ae3.html",
                    "frontmatter": {
                      "title": "LV001-STM32的SPI",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/peripheral/spi/126b0950f4ae14889c830ae3",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "89c830ae3a594952be17b5abc6bbb737",
                        "useduuid": "89c830ae3"
                      }
                    }
                  },
                  {
                    "title": "LV010-W25QXXX简介",
                    "url": "/sdoc/peripheral/spi/126b0950f64a0b5a3fbcba93.html",
                    "frontmatter": {
                      "title": "LV010-W25QXXX简介",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/peripheral/spi/126b0950f64a0b5a3fbcba93",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "a3fbcba93d1642329a28cddcb65ad8e8",
                        "useduuid": "a3fbcba93"
                      }
                    }
                  },
                  {
                    "title": "LV015-SPI读写W25QXXX实例",
                    "url": "/sdoc/peripheral/spi/126b0950f849211ff053e7ff.html",
                    "frontmatter": {
                      "title": "LV015-SPI读写W25QXXX实例",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/peripheral/spi/126b0950f849211ff053e7ff",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "ff053e7ff3e247358beec3bab1ba61de",
                        "useduuid": "ff053e7ff"
                      }
                    }
                  }
                ],
                "frontmatter": {}
              },
              {
                "title": "40-DMA",
                "children": [
                  {
                    "title": "LV001-DMA简介",
                    "url": "/sdoc/peripheral/dma/126b0950fbc52669af52caac.html",
                    "frontmatter": {
                      "title": "LV001-DMA简介",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/peripheral/dma/126b0950fbc52669af52caac",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "9af52caac91c42b1b28d2e09c22f8d43",
                        "useduuid": "9af52caac"
                      }
                    }
                  },
                  {
                    "title": "LV010-DMA使用实例",
                    "url": "/sdoc/peripheral/dma/126b0950fc960317c7b64826.html",
                    "frontmatter": {
                      "title": "LV010-DMA使用实例",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/peripheral/dma/126b0950fc960317c7b64826",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "7c7b6482620b4698a5eac4b6e449f631",
                        "useduuid": "7c7b64826"
                      }
                    }
                  }
                ],
                "frontmatter": {}
              },
              {
                "title": "50-SDIO",
                "children": [
                  {
                    "title": "LV001-SD卡简介",
                    "url": "/sdoc/peripheral/sdio/126b0950fe110bc81c4d2fd3.html",
                    "frontmatter": {
                      "title": "LV001-SD卡简介",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/peripheral/sdio/126b0950fe110bc81c4d2fd3",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "81c4d2fd3b3049a1a63dd12e12b5a3fa",
                        "useduuid": "81c4d2fd3"
                      }
                    }
                  },
                  {
                    "title": "LV015-SD卡的操作",
                    "url": "/sdoc/peripheral/sdio/126b0950ff013d660d235356.html",
                    "frontmatter": {
                      "title": "LV015-SD卡的操作",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/peripheral/sdio/126b0950ff013d660d235356",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "60d235356a8a41c6b5be0b1b1d22ed03",
                        "useduuid": "60d235356"
                      }
                    }
                  },
                  {
                    "title": "LV020-STM32的SDIO",
                    "url": "/sdoc/peripheral/sdio/126b0951000d2a75b964fa55.html",
                    "frontmatter": {
                      "title": "LV020-STM32的SDIO",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/peripheral/sdio/126b0951000d2a75b964fa55",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "5b964fa55b1c49f2849632ac18e58758",
                        "useduuid": "5b964fa55"
                      }
                    }
                  },
                  {
                    "title": "LV025-读写SD卡实例",
                    "url": "/sdoc/peripheral/sdio/126b095100d21af60c8ed17e.html",
                    "frontmatter": {
                      "title": "LV025-读写SD卡实例",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/peripheral/sdio/126b095100d21af60c8ed17e",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "60c8ed17e9a9490aaf1efe2014ac5b67",
                        "useduuid": "60c8ed17e"
                      }
                    }
                  }
                ],
                "frontmatter": {}
              },
              {
                "title": "55-RTC时钟",
                "children": [
                  {
                    "title": "LV001-RTC简介",
                    "url": "/sdoc/peripheral/rtc/126b09511eac35920a3f191c.html",
                    "frontmatter": {
                      "title": "LV001-RTC简介",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/peripheral/rtc/126b09511eac35920a3f191c",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "20a3f191c6054d8d9f5fd53ff7b809de",
                        "useduuid": "20a3f191c"
                      }
                    }
                  }
                ],
                "frontmatter": {}
              },
              {
                "title": "60-USB",
                "children": [
                  {
                    "title": "LV001-USB简介",
                    "url": "/sdoc/peripheral/usb/126b095167b12a8376012928.html",
                    "frontmatter": {
                      "title": "LV001-USB简介",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/peripheral/usb/126b095167b12a8376012928",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "3760129282bc45c68e9217915df4f46b",
                        "useduuid": 376012928
                      }
                    }
                  },
                  {
                    "title": "LV010-USB读卡器实例",
                    "url": "/sdoc/peripheral/usb/126b095168b91d9fad5c2a07.html",
                    "frontmatter": {
                      "title": "LV010-USB读卡器实例",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/peripheral/usb/126b095168b91d9fad5c2a07",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "fad5c2a07ce14efe93e887b24a93fb47",
                        "useduuid": "fad5c2a07"
                      }
                    }
                  }
                ],
                "frontmatter": {}
              }
            ],
            "frontmatter": {}
          },
          {
            "title": "30-进阶篇",
            "children": [
              {
                "title": "01-文件系统",
                "children": [
                  {
                    "title": "LV001-文件系统简介",
                    "url": "/sdoc/advanced-chapter/file-system/126b0951040033e78ccbca10.html",
                    "frontmatter": {
                      "title": "LV001-文件系统简介",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/advanced-chapter/file-system/126b0951040033e78ccbca10",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "78ccbca106d046ecaee2de5e4c1f5766",
                        "useduuid": "78ccbca10"
                      }
                    }
                  },
                  {
                    "title": "LV010-FATFS简介",
                    "url": "/sdoc/advanced-chapter/file-system/126b095105912fc87e8eb3f7.html",
                    "frontmatter": {
                      "title": "LV010-FATFS简介",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/advanced-chapter/file-system/126b095105912fc87e8eb3f7",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "87e8eb3f76b14573a4c0856bf2257669",
                        "useduuid": "87e8eb3f7"
                      }
                    }
                  },
                  {
                    "title": "LV015-基于SPIFLASH移植FATFS",
                    "url": "/sdoc/advanced-chapter/file-system/126b0951078a03391bda267a.html",
                    "frontmatter": {
                      "title": "LV015-基于SPIFLASH移植FATFS",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/advanced-chapter/file-system/126b0951078a03391bda267a",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "91bda267a4934867a0b05673bbc3ef13",
                        "useduuid": "91bda267a"
                      }
                    }
                  },
                  {
                    "title": "LV015-基于SD卡移植FATFS",
                    "url": "/sdoc/advanced-chapter/file-system/126b09511b702501a47f120c.html",
                    "frontmatter": {
                      "title": "LV015-基于SD卡移植FATFS",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/advanced-chapter/file-system/126b09511b702501a47f120c",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "1a47f120cd8c41b6ab06d05da2ace352",
                        "useduuid": "1a47f120c"
                      }
                    }
                  },
                  {
                    "title": "LV025-FATFS中自定义的一些函数",
                    "url": "/sdoc/advanced-chapter/file-system/126b09511d060b54b7d725e9.html",
                    "frontmatter": {
                      "title": "LV025-FATFS中自定义的一些函数",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/advanced-chapter/file-system/126b09511d060b54b7d725e9",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "4b7d725e9ba54c78945189a9341e3b34",
                        "useduuid": "4b7d725e9"
                      }
                    }
                  }
                ],
                "frontmatter": {}
              },
              {
                "title": "02-ESP8266",
                "children": [
                  {
                    "title": "LV001-ESP8266模块简介",
                    "url": "/sdoc/advanced-chapter/esp8266/126b0951502d346ca9aa7929.html",
                    "frontmatter": {
                      "title": "LV001-ESP8266模块简介",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/advanced-chapter/esp8266/126b0951502d346ca9aa7929",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "ca9aa79298244701abe40ba6e8a3afb0",
                        "useduuid": "ca9aa7929"
                      }
                    }
                  },
                  {
                    "title": "LV010-AT指令",
                    "url": "/sdoc/advanced-chapter/esp8266/126b095151472d621a6605a9.html",
                    "frontmatter": {
                      "title": "LV010-AT指令",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/advanced-chapter/esp8266/126b095151472d621a6605a9",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "21a6605a91b34e7b87e3081f66267021",
                        "useduuid": "21a6605a9"
                      }
                    }
                  },
                  {
                    "title": "LV015-ESP8266固件烧录",
                    "url": "/sdoc/advanced-chapter/esp8266/126b0951520814de18399844.html",
                    "frontmatter": {
                      "title": "LV015-ESP8266固件烧录",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/advanced-chapter/esp8266/126b0951520814de18399844",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "e18399844bf344e3bb81cdc33db73395",
                        "useduuid": "e18399844"
                      }
                    }
                  },
                  {
                    "title": "LV020-ATK-ESP8266使用实例",
                    "url": "/sdoc/advanced-chapter/esp8266/126b095152fb04ead8380cb5.html",
                    "frontmatter": {
                      "title": "LV020-ATK-ESP8266使用实例",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/advanced-chapter/esp8266/126b095152fb04ead8380cb5",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "ad8380cb587c446592ab6fa1ae7318fd",
                        "useduuid": "ad8380cb5"
                      }
                    }
                  }
                ],
                "frontmatter": {}
              },
              {
                "title": "03-OV7725",
                "children": [
                  {
                    "title": "LV001-ATK-MC6625F模块简介",
                    "url": "/sdoc/advanced-chapter/ov7725/126b09516b08191a7bd0fd02.html",
                    "frontmatter": {
                      "title": "LV001-ATK-MC6625F模块简介",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/advanced-chapter/ov7725/126b09516b08191a7bd0fd02",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "a7bd0fd0290345cfae6ad4ff74f043f7",
                        "useduuid": "a7bd0fd02"
                      }
                    }
                  },
                  {
                    "title": "LV010-SCCB协议简介",
                    "url": "/sdoc/advanced-chapter/ov7725/126b09516b6c2fed98855250.html",
                    "frontmatter": {
                      "title": "LV010-SCCB协议简介",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/advanced-chapter/ov7725/126b09516b6c2fed98855250",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "d9885525026649bdb9a31be28b79a722",
                        "useduuid": "d98855250"
                      }
                    }
                  },
                  {
                    "title": "LV020-OV7725简介",
                    "url": "/sdoc/advanced-chapter/ov7725/126b09516bd03c413cd356e8.html",
                    "frontmatter": {
                      "title": "LV020-OV7725简介",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/advanced-chapter/ov7725/126b09516bd03c413cd356e8",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "13cd356e84f447f3b52ee1a287368dce",
                        "useduuid": "13cd356e8"
                      }
                    }
                  }
                ],
                "frontmatter": {}
              },
              {
                "title": "04-显示屏",
                "children": [
                  {
                    "title": "01-OLED",
                    "children": [
                      {
                        "title": "LV001-OLED简介",
                        "url": "/sdoc/advanced-chapter/display/oled/126b09516d6c2a948085516b.html",
                        "frontmatter": {
                          "title": "LV001-OLED简介",
                          "date": {},
                          "icon": "famicons:logo-markdown",
                          "permalink": "/sdoc/advanced-chapter/display/oled/126b09516d6c2a948085516b",
                          "index": true,
                          "tags": null,
                          "categories": null,
                          "copyright": false,
                          "keywords": null,
                          "cover": null,
                          "comments": null,
                          "mathjax": null,
                          "top": null,
                          "description": null,
                          "tdoc": {
                            "detailDate": {},
                            "fulluuid": "48085516b89044b2a637057cfaac3f5c",
                            "useduuid": "48085516b"
                          }
                        }
                      },
                      {
                        "title": "LV010-8080时序驱动OLED",
                        "url": "/sdoc/advanced-chapter/display/oled/126b09517279099247b327e5.html",
                        "frontmatter": {
                          "title": "LV010-8080时序驱动OLED",
                          "date": {},
                          "icon": "famicons:logo-markdown",
                          "permalink": "/sdoc/advanced-chapter/display/oled/126b09517279099247b327e5",
                          "index": true,
                          "tags": null,
                          "categories": null,
                          "copyright": false,
                          "keywords": null,
                          "cover": null,
                          "comments": null,
                          "mathjax": null,
                          "top": null,
                          "description": null,
                          "tdoc": {
                            "detailDate": {},
                            "fulluuid": "247b327e5f1747919749deb8038e066d",
                            "useduuid": "247b327e5"
                          }
                        }
                      }
                    ],
                    "frontmatter": {}
                  },
                  {
                    "title": "02-LCD",
                    "children": [
                      {
                        "title": "LV001-LCD简介",
                        "url": "/sdoc/advanced-chapter/display/lcd/126b0951740b3b3a3f69973e.html",
                        "frontmatter": {
                          "title": "LV001-LCD简介",
                          "date": {},
                          "icon": "famicons:logo-markdown",
                          "permalink": "/sdoc/advanced-chapter/display/lcd/126b0951740b3b3a3f69973e",
                          "index": true,
                          "tags": null,
                          "categories": null,
                          "copyright": false,
                          "keywords": null,
                          "cover": null,
                          "comments": null,
                          "mathjax": null,
                          "top": null,
                          "description": null,
                          "tdoc": {
                            "detailDate": {},
                            "fulluuid": "a3f69973ef4142428240aba5719aeeb0",
                            "useduuid": "a3f69973e"
                          }
                        }
                      },
                      {
                        "title": "LV010-液晶控制原理",
                        "url": "/sdoc/advanced-chapter/display/lcd/126b0951760b03320ea5c5be.html",
                        "frontmatter": {
                          "title": "LV010-液晶控制原理",
                          "date": {},
                          "icon": "famicons:logo-markdown",
                          "permalink": "/sdoc/advanced-chapter/display/lcd/126b0951760b03320ea5c5be",
                          "index": true,
                          "tags": null,
                          "categories": null,
                          "copyright": false,
                          "keywords": null,
                          "cover": null,
                          "comments": null,
                          "mathjax": null,
                          "top": null,
                          "description": null,
                          "tdoc": {
                            "detailDate": {},
                            "fulluuid": "20ea5c5be93445288eac3b57c2e84f66",
                            "useduuid": "20ea5c5be"
                          }
                        }
                      },
                      {
                        "title": "LV015-ATK-MD0280模块",
                        "url": "/sdoc/advanced-chapter/display/lcd/126b095237661ce983ad47b1.html",
                        "frontmatter": {
                          "title": "LV015-ATK-MD0280模块",
                          "date": {},
                          "icon": "famicons:logo-markdown",
                          "permalink": "/sdoc/advanced-chapter/display/lcd/126b095237661ce983ad47b1",
                          "index": true,
                          "tags": null,
                          "categories": null,
                          "copyright": false,
                          "keywords": null,
                          "cover": null,
                          "comments": null,
                          "mathjax": null,
                          "top": null,
                          "description": null,
                          "tdoc": {
                            "detailDate": {},
                            "fulluuid": "983ad47b1ccb49c59396418e90556b0c",
                            "useduuid": "983ad47b1"
                          }
                        }
                      },
                      {
                        "title": "LV016-IL9341简介",
                        "url": "/sdoc/advanced-chapter/display/lcd/126b095238ef12080fa9e2fc.html",
                        "frontmatter": {
                          "title": "LV016-IL9341简介",
                          "date": {},
                          "icon": "famicons:logo-markdown",
                          "permalink": "/sdoc/advanced-chapter/display/lcd/126b095238ef12080fa9e2fc",
                          "index": true,
                          "tags": null,
                          "categories": null,
                          "copyright": false,
                          "keywords": null,
                          "cover": null,
                          "comments": null,
                          "mathjax": null,
                          "top": null,
                          "description": null,
                          "tdoc": {
                            "detailDate": {},
                            "fulluuid": "80fa9e2fc1c846ac9bfafe695ffc6b7d",
                            "useduuid": "80fa9e2fc"
                          }
                        }
                      },
                      {
                        "title": "LV020-FSMC模拟8080时序",
                        "url": "/sdoc/advanced-chapter/display/lcd/126b09523c371707f0bd772f.html",
                        "frontmatter": {
                          "title": "LV020-FSMC模拟8080时序",
                          "date": {},
                          "icon": "famicons:logo-markdown",
                          "permalink": "/sdoc/advanced-chapter/display/lcd/126b09523c371707f0bd772f",
                          "index": true,
                          "tags": null,
                          "categories": null,
                          "copyright": false,
                          "keywords": null,
                          "cover": null,
                          "comments": null,
                          "mathjax": null,
                          "top": null,
                          "description": null,
                          "tdoc": {
                            "detailDate": {},
                            "fulluuid": "7f0bd772fcbd424ab2f5aaf94abf65ff",
                            "useduuid": "7f0bd772f"
                          }
                        }
                      },
                      {
                        "title": "LV025-LCD显示实例",
                        "url": "/sdoc/advanced-chapter/display/lcd/126b095253d9037570d31d42.html",
                        "frontmatter": {
                          "title": "LV025-LCD显示实例",
                          "date": {},
                          "icon": "famicons:logo-markdown",
                          "permalink": "/sdoc/advanced-chapter/display/lcd/126b095253d9037570d31d42",
                          "index": true,
                          "tags": null,
                          "categories": null,
                          "copyright": false,
                          "keywords": null,
                          "cover": null,
                          "comments": null,
                          "mathjax": null,
                          "top": null,
                          "description": null,
                          "tdoc": {
                            "detailDate": {},
                            "fulluuid": "570d31d42d894e208a1fb9d5c484e257",
                            "useduuid": "570d31d42"
                          }
                        }
                      },
                      {
                        "title": "LV030-字符编码基础",
                        "url": "/sdoc/advanced-chapter/display/lcd/126b095255800a53f67e99cc.html",
                        "frontmatter": {
                          "title": "LV030-字符编码基础",
                          "date": {},
                          "icon": "famicons:logo-markdown",
                          "permalink": "/sdoc/advanced-chapter/display/lcd/126b095255800a53f67e99cc",
                          "index": true,
                          "tags": null,
                          "categories": null,
                          "copyright": false,
                          "keywords": null,
                          "cover": null,
                          "comments": null,
                          "mathjax": null,
                          "top": null,
                          "description": null,
                          "tdoc": {
                            "detailDate": {},
                            "fulluuid": "3f67e99cc1774328be76eff3ae429948",
                            "useduuid": "3f67e99cc"
                          }
                        }
                      },
                      {
                        "title": "LV035-中英文的显示",
                        "url": "/sdoc/advanced-chapter/display/lcd/126b0952576b3df0941e36ed.html",
                        "frontmatter": {
                          "title": "LV035-中英文的显示",
                          "date": {},
                          "icon": "famicons:logo-markdown",
                          "permalink": "/sdoc/advanced-chapter/display/lcd/126b0952576b3df0941e36ed",
                          "index": true,
                          "tags": null,
                          "categories": null,
                          "copyright": false,
                          "keywords": null,
                          "cover": null,
                          "comments": null,
                          "mathjax": null,
                          "top": null,
                          "description": null,
                          "tdoc": {
                            "detailDate": {},
                            "fulluuid": "0941e36ed35b4da7a71acace5c8d2e0d",
                            "useduuid": "0941e36ed"
                          }
                        }
                      },
                      {
                        "title": "LV040-实现任意大小字模",
                        "url": "/sdoc/advanced-chapter/display/lcd/126b09525e7116330989fbcc.html",
                        "frontmatter": {
                          "title": "LV040-实现任意大小字模",
                          "date": {},
                          "icon": "famicons:logo-markdown",
                          "permalink": "/sdoc/advanced-chapter/display/lcd/126b09525e7116330989fbcc",
                          "index": true,
                          "tags": null,
                          "categories": null,
                          "copyright": false,
                          "keywords": null,
                          "cover": null,
                          "comments": null,
                          "mathjax": null,
                          "top": null,
                          "description": null,
                          "tdoc": {
                            "detailDate": {},
                            "fulluuid": "30989fbcc8354f6baad6455294de0120",
                            "useduuid": "30989fbcc"
                          }
                        }
                      }
                    ],
                    "frontmatter": {}
                  }
                ],
                "frontmatter": {}
              },
              {
                "title": "90-FreeRTOS",
                "children": [
                  {
                    "title": "01-FreeRTOS简介",
                    "children": [
                      {
                        "title": "LV001-FreeRTOS简介",
                        "url": "/docs/126b096ee4d10f3bb564b607.html",
                        "frontmatter": {
                          "title": "LV001-FreeRTOS简介",
                          "date": {},
                          "icon": "famicons:logo-markdown",
                          "permalink": "/docs/126b096ee4d10f3bb564b607",
                          "index": true,
                          "tags": null,
                          "categories": null,
                          "copyright": false,
                          "keywords": null,
                          "cover": null,
                          "comments": null,
                          "mathjax": null,
                          "top": null,
                          "description": null,
                          "tdoc": {
                            "detailDate": {},
                            "fulluuid": "bb564b607089439882d4247b57282de9",
                            "useduuid": "bb564b607"
                          }
                        }
                      }
                    ],
                    "frontmatter": {}
                  }
                ],
                "frontmatter": {}
              }
            ],
            "frontmatter": {}
          },
          {
            "title": "60-通信专题",
            "children": [
              {
                "title": "01-I2C协议",
                "children": [
                  {
                    "title": "LV001-I2C简介",
                    "url": "/sdoc/communication/i2c/126b09043f2d250b963bfb0d.html",
                    "frontmatter": {
                      "title": "LV001-I2C简介",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/communication/i2c/126b09043f2d250b963bfb0d",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "b963bfb0deb74fcaa8f060b7b084d3d8",
                        "useduuid": "b963bfb0d"
                      }
                    }
                  },
                  {
                    "title": "LV020-AT24C02实例分析",
                    "url": "/sdoc/communication/i2c/126b09043fca31869028172d.html",
                    "frontmatter": {
                      "title": "LV020-AT24C02实例分析",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/communication/i2c/126b09043fca31869028172d",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "69028172daa144dcbab34851329c3348",
                        "useduuid": "69028172d"
                      }
                    }
                  }
                ],
                "frontmatter": {}
              },
              {
                "title": "10-串口",
                "children": [
                  {
                    "title": "LV001-串口通信简介",
                    "url": "/sdoc/communication/serial-port/126b0904421d06db7b197798.html",
                    "frontmatter": {
                      "title": "LV001-串口通信简介",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/communication/serial-port/126b0904421d06db7b197798",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "b7b197798fd74f3fb97abd23e12eb7bc",
                        "useduuid": "b7b197798"
                      }
                    }
                  },
                  {
                    "title": "LV020-RS232简介",
                    "url": "/sdoc/communication/serial-port/126b0950f26b1afbd6db3885.html",
                    "frontmatter": {
                      "title": "LV020-RS232简介",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/communication/serial-port/126b0950f26b1afbd6db3885",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "bd6db38856214d8db0d0697d94245e7d",
                        "useduuid": "bd6db3885"
                      }
                    }
                  },
                  {
                    "title": "LV030-RS485简介",
                    "url": "/sdoc/communication/serial-port/126b0950f287303e7c68cbb5.html",
                    "frontmatter": {
                      "title": "LV030-RS485简介",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/communication/serial-port/126b0950f287303e7c68cbb5",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "e7c68cbb501d41a4be750e720e3a5e0a",
                        "useduuid": "e7c68cbb5"
                      }
                    }
                  }
                ],
                "frontmatter": {}
              },
              {
                "title": "30-SPI",
                "children": [
                  {
                    "title": "LV001-SPI简介",
                    "url": "/sdoc/communication/spi/126b0950dceb1d850b1e36d8.html",
                    "frontmatter": {
                      "title": "LV001-SPI简介",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/communication/spi/126b0950dceb1d850b1e36d8",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "50b1e36d86eb4c0e85c11fe350fcd877",
                        "useduuid": "50b1e36d8"
                      }
                    }
                  }
                ],
                "frontmatter": {}
              },
              {
                "title": "40-CAN",
                "children": [
                  {
                    "title": "LV001-CAN通信简介",
                    "url": "/sdoc/communication/can/126b0950f34624bdf8f7407f.html",
                    "frontmatter": {
                      "title": "LV001-CAN通信简介",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/communication/can/126b0950f34624bdf8f7407f",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "df8f7407fc324becb0237697f4ea8f9c",
                        "useduuid": "df8f7407f"
                      }
                    }
                  }
                ],
                "frontmatter": {}
              },
              {
                "title": "LV001-通信概述",
                "url": "/sdoc/communication/126b09043e1c12685fda3fb8.html",
                "frontmatter": {
                  "title": "LV001-通信概述",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/communication/126b09043e1c12685fda3fb8",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "85fda3fb8df54e90807dd03d5831b5bf",
                    "useduuid": "85fda3fb8"
                  }
                }
              }
            ],
            "frontmatter": {}
          }
        ]
      }
    ],
    "map": {
      "sdoc/01-开发工具/01-keil/index": {
        "url": "sdoc/dev-tool/keil/126b08a8b73a3181c0cdd833.html",
        "path": "sdoc/01-开发工具/01-keil",
        "catalogues": [
          {
            "title": "LV001-keil简介",
            "url": "/sdoc/dev-tool/keil/126b08a8b79e2ecaa634dd81.html",
            "frontmatter": {
              "title": "LV001-keil简介",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/dev-tool/keil/126b08a8b79e2ecaa634dd81",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "aa634dd813594b2686f1ae7b5b6911d4",
                "useduuid": "aa634dd81"
              }
            }
          },
          {
            "title": "LV002-工程创建",
            "url": "/sdoc/dev-tool/keil/126b08aa5e32382c0ab32a01.html",
            "frontmatter": {
              "title": "LV002-工程创建",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/dev-tool/keil/126b08aa5e32382c0ab32a01",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "c0ab32a01a744756b6c0c3e4231ed9aa",
                "useduuid": "c0ab32a01"
              }
            }
          },
          {
            "title": "LV010-程序与编译",
            "url": "/sdoc/dev-tool/keil/126b08e6a9c4187125e57a5f.html",
            "frontmatter": {
              "title": "LV010-程序与编译",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/dev-tool/keil/126b08e6a9c4187125e57a5f",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "125e57a5ff854ebaa58b6fff51b99a11",
                "useduuid": "125e57a5f"
              }
            }
          },
          {
            "title": "LV015-MDK工程文件简介",
            "url": "/sdoc/dev-tool/keil/126b0913857d3670d6f0eef1.html",
            "frontmatter": {
              "title": "LV015-MDK工程文件简介",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/dev-tool/keil/126b0913857d3670d6f0eef1",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "0d6f0eef153042fc862dc752cb0e3c2d",
                "useduuid": "0d6f0eef1"
              }
            }
          },
          {
            "title": "LV016-Output目录文件",
            "url": "/sdoc/dev-tool/keil/126b091384f9220a0ff9cf1d.html",
            "frontmatter": {
              "title": "LV016-Output目录文件",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/dev-tool/keil/126b091384f9220a0ff9cf1d",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "a0ff9cf1dff34a1790997424e34bac30",
                "useduuid": "a0ff9cf1d"
              }
            }
          },
          {
            "title": "LV017-Listing目录文件",
            "url": "/sdoc/dev-tool/keil/126b0913865605b5493dc70e.html",
            "frontmatter": {
              "title": "LV017-Listing目录文件",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/dev-tool/keil/126b0913865605b5493dc70e",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "5493dc70ee6849e0b32a91f39d8e2488",
                "useduuid": "5493dc70e"
              }
            }
          },
          {
            "title": "LV020-SCT分散加载文件",
            "url": "/sdoc/dev-tool/keil/126b08e6cfb5032dbc05b46a.html",
            "frontmatter": {
              "title": "LV020-SCT分散加载文件",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/dev-tool/keil/126b08e6cfb5032dbc05b46a",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "dbc05b46abca47d8a176762f5148dc50",
                "useduuid": "dbc05b46a"
              }
            }
          },
          {
            "title": "LV025-SCT文件应用",
            "url": "/sdoc/dev-tool/keil/126b08e6d335070a7fd1934d.html",
            "frontmatter": {
              "title": "LV025-SCT文件应用",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/dev-tool/keil/126b08e6d335070a7fd1934d",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "a7fd1934dbcb4eef93f57d3dce4e0059",
                "useduuid": "a7fd1934d"
              }
            }
          },
          {
            "title": "LV040-在线调试",
            "url": "/sdoc/dev-tool/keil/126b08e76d70287e70afead6.html",
            "frontmatter": {
              "title": "LV040-在线调试",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/dev-tool/keil/126b08e76d70287e70afead6",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "e70afead6dd14692ad3b3749eb2cad4d",
                "useduuid": "e70afead6"
              }
            }
          }
        ]
      },
      "sdoc/01-开发工具/02-STM32Cube/index": {
        "url": "sdoc/dev-tool/stm32cube/126b08aa588123a43b261847.html",
        "path": "sdoc/01-开发工具/02-STM32Cube",
        "catalogues": [
          {
            "title": "LV001-STM32CubeMX简介",
            "url": "/sdoc/dev-tool/stm32cube/126b08aa58bc0838d250f7bd.html",
            "frontmatter": {
              "title": "LV001-STM32CubeMX简介",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/dev-tool/stm32cube/126b08aa58bc0838d250f7bd",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "8d250f7bdb9d4b4fb822b135635cdf20",
                "useduuid": "8d250f7bd"
              }
            }
          },
          {
            "title": "LV002-STM32CubeMX工程创建",
            "url": "/sdoc/dev-tool/stm32cube/126b08aaf7c11b6e19f8d60a.html",
            "frontmatter": {
              "title": "LV002-STM32CubeMX工程创建",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/dev-tool/stm32cube/126b08aaf7c11b6e19f8d60a",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "e19f8d60a0f64d51a22bc5a8a04bf26f",
                "useduuid": "e19f8d60a"
              }
            }
          },
          {
            "title": "LV010-Makefile管理工程",
            "url": "/sdoc/dev-tool/stm32cube/126b08e6edcf211c7df7916d.html",
            "frontmatter": {
              "title": "LV010-Makefile管理工程",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/dev-tool/stm32cube/126b08e6edcf211c7df7916d",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "c7df7916d51c40f295ec8bdf0e20a228",
                "useduuid": "c7df7916d"
              }
            }
          },
          {
            "title": "LV012-Makefile文件分析",
            "url": "/sdoc/dev-tool/stm32cube/126b08e6ef7626b7c442bfe2.html",
            "frontmatter": {
              "title": "LV012-Makefile文件分析",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/dev-tool/stm32cube/126b08e6ef7626b7c442bfe2",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "7c442bfe2f7348608819bf852cebb54e",
                "useduuid": "7c442bfe2"
              }
            }
          },
          {
            "title": "LV040-LD链接脚本",
            "url": "/sdoc/dev-tool/keil/126b08e6f2e40a653e71bc02.html",
            "frontmatter": {
              "title": "LV040-LD链接脚本",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/dev-tool/keil/126b08e6f2e40a653e71bc02",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "53e71bc02dd346aeac5749700b205317",
                "useduuid": "53e71bc02"
              }
            }
          },
          {
            "title": "LV030-STM32CubeIDE",
            "url": "/sdoc/dev-tool/stm32cube/126b08e6f0211b46eabe9106.html",
            "frontmatter": {
              "title": "LV030-STM32CubeIDE",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/dev-tool/stm32cube/126b08e6f0211b46eabe9106",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "6eabe9106e39465d81b7853e19f74deb",
                "useduuid": "6eabe9106"
              }
            }
          }
        ]
      },
      "sdoc/01-开发工具/10-下载与调试/index": {
        "url": "sdoc/dev-tool/burn-and-debug/126b08ab150e18611433564e.html",
        "path": "sdoc/01-开发工具/10-下载与调试",
        "catalogues": [
          {
            "title": "LV001-下载与调试概述",
            "url": "/sdoc/dev-tool/burn-and-debug/126b08ab16fa3e011692369d.html",
            "frontmatter": {
              "title": "LV001-下载与调试概述",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/dev-tool/burn-and-debug/126b08ab16fa3e011692369d",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "11692369dc744332bc6f2569dd8ec58a",
                "useduuid": "11692369d"
              }
            }
          },
          {
            "title": "LV002-JLink怎么使用",
            "url": "/sdoc/dev-tool/burn-and-debug/126b08ab15ee0921c4f7fd64.html",
            "frontmatter": {
              "title": "LV002-JLink怎么使用",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/dev-tool/burn-and-debug/126b08ab15ee0921c4f7fd64",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "1c4f7fd64909407cb589ad3348a0c376",
                "useduuid": "1c4f7fd64"
              }
            }
          },
          {
            "title": "LV010-JFlash简介",
            "url": "/sdoc/dev-tool/burn-and-debug/126b08b7f6ce25a6c770f3b5.html",
            "frontmatter": {
              "title": "LV010-JFlash简介",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/dev-tool/burn-and-debug/126b08b7f6ce25a6c770f3b5",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "6c770f3b50d84d7fad7f77bc05f872fc",
                "useduuid": "6c770f3b5"
              }
            }
          },
          {
            "title": "LV015-STLink怎么使用",
            "url": "/sdoc/dev-tool/burn-and-debug/126b08b9c98b11187c20e13a.html",
            "frontmatter": {
              "title": "LV015-STLink怎么使用",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/dev-tool/burn-and-debug/126b08b9c98b11187c20e13a",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "87c20e13a48a44dfb380f22a1b102e34",
                "useduuid": "87c20e13a"
              }
            }
          },
          {
            "title": "LV020-ST-LINK-Utility简介",
            "url": "/sdoc/dev-tool/burn-and-debug/126b08b9cb90276fafba387f.html",
            "frontmatter": {
              "title": "LV020-ST-LINK-Utility简介",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/dev-tool/burn-and-debug/126b08b9cb90276fafba387f",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "fafba387f5f84aab849e4d8b464e22ad",
                "useduuid": "fafba387f"
              }
            }
          },
          {
            "title": "LV030-串口下载",
            "url": "/sdoc/dev-tool/burn-and-debug/126b08b9cea618afd74b243b.html",
            "frontmatter": {
              "title": "LV030-串口下载",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/dev-tool/burn-and-debug/126b08b9cea618afd74b243b",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "fd74b243b22149fe9c55a56a7b50b6d5",
                "useduuid": "fd74b243b"
              }
            }
          }
        ]
      },
      "sdoc/01-开发工具/index": {
        "url": "sdoc/dev-tool/126b08a8b29007f159f1c463.html",
        "path": "sdoc/01-开发工具",
        "catalogues": [
          {
            "title": "01-keil",
            "children": [
              {
                "title": "LV001-keil简介",
                "url": "/sdoc/dev-tool/keil/126b08a8b79e2ecaa634dd81.html",
                "frontmatter": {
                  "title": "LV001-keil简介",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/dev-tool/keil/126b08a8b79e2ecaa634dd81",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "aa634dd813594b2686f1ae7b5b6911d4",
                    "useduuid": "aa634dd81"
                  }
                }
              },
              {
                "title": "LV002-工程创建",
                "url": "/sdoc/dev-tool/keil/126b08aa5e32382c0ab32a01.html",
                "frontmatter": {
                  "title": "LV002-工程创建",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/dev-tool/keil/126b08aa5e32382c0ab32a01",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "c0ab32a01a744756b6c0c3e4231ed9aa",
                    "useduuid": "c0ab32a01"
                  }
                }
              },
              {
                "title": "LV010-程序与编译",
                "url": "/sdoc/dev-tool/keil/126b08e6a9c4187125e57a5f.html",
                "frontmatter": {
                  "title": "LV010-程序与编译",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/dev-tool/keil/126b08e6a9c4187125e57a5f",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "125e57a5ff854ebaa58b6fff51b99a11",
                    "useduuid": "125e57a5f"
                  }
                }
              },
              {
                "title": "LV015-MDK工程文件简介",
                "url": "/sdoc/dev-tool/keil/126b0913857d3670d6f0eef1.html",
                "frontmatter": {
                  "title": "LV015-MDK工程文件简介",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/dev-tool/keil/126b0913857d3670d6f0eef1",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "0d6f0eef153042fc862dc752cb0e3c2d",
                    "useduuid": "0d6f0eef1"
                  }
                }
              },
              {
                "title": "LV016-Output目录文件",
                "url": "/sdoc/dev-tool/keil/126b091384f9220a0ff9cf1d.html",
                "frontmatter": {
                  "title": "LV016-Output目录文件",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/dev-tool/keil/126b091384f9220a0ff9cf1d",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "a0ff9cf1dff34a1790997424e34bac30",
                    "useduuid": "a0ff9cf1d"
                  }
                }
              },
              {
                "title": "LV017-Listing目录文件",
                "url": "/sdoc/dev-tool/keil/126b0913865605b5493dc70e.html",
                "frontmatter": {
                  "title": "LV017-Listing目录文件",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/dev-tool/keil/126b0913865605b5493dc70e",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "5493dc70ee6849e0b32a91f39d8e2488",
                    "useduuid": "5493dc70e"
                  }
                }
              },
              {
                "title": "LV020-SCT分散加载文件",
                "url": "/sdoc/dev-tool/keil/126b08e6cfb5032dbc05b46a.html",
                "frontmatter": {
                  "title": "LV020-SCT分散加载文件",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/dev-tool/keil/126b08e6cfb5032dbc05b46a",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "dbc05b46abca47d8a176762f5148dc50",
                    "useduuid": "dbc05b46a"
                  }
                }
              },
              {
                "title": "LV025-SCT文件应用",
                "url": "/sdoc/dev-tool/keil/126b08e6d335070a7fd1934d.html",
                "frontmatter": {
                  "title": "LV025-SCT文件应用",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/dev-tool/keil/126b08e6d335070a7fd1934d",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "a7fd1934dbcb4eef93f57d3dce4e0059",
                    "useduuid": "a7fd1934d"
                  }
                }
              },
              {
                "title": "LV040-在线调试",
                "url": "/sdoc/dev-tool/keil/126b08e76d70287e70afead6.html",
                "frontmatter": {
                  "title": "LV040-在线调试",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/dev-tool/keil/126b08e76d70287e70afead6",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "e70afead6dd14692ad3b3749eb2cad4d",
                    "useduuid": "e70afead6"
                  }
                }
              }
            ],
            "frontmatter": {}
          },
          {
            "title": "02-STM32Cube",
            "children": [
              {
                "title": "LV001-STM32CubeMX简介",
                "url": "/sdoc/dev-tool/stm32cube/126b08aa58bc0838d250f7bd.html",
                "frontmatter": {
                  "title": "LV001-STM32CubeMX简介",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/dev-tool/stm32cube/126b08aa58bc0838d250f7bd",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "8d250f7bdb9d4b4fb822b135635cdf20",
                    "useduuid": "8d250f7bd"
                  }
                }
              },
              {
                "title": "LV002-STM32CubeMX工程创建",
                "url": "/sdoc/dev-tool/stm32cube/126b08aaf7c11b6e19f8d60a.html",
                "frontmatter": {
                  "title": "LV002-STM32CubeMX工程创建",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/dev-tool/stm32cube/126b08aaf7c11b6e19f8d60a",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "e19f8d60a0f64d51a22bc5a8a04bf26f",
                    "useduuid": "e19f8d60a"
                  }
                }
              },
              {
                "title": "LV010-Makefile管理工程",
                "url": "/sdoc/dev-tool/stm32cube/126b08e6edcf211c7df7916d.html",
                "frontmatter": {
                  "title": "LV010-Makefile管理工程",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/dev-tool/stm32cube/126b08e6edcf211c7df7916d",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "c7df7916d51c40f295ec8bdf0e20a228",
                    "useduuid": "c7df7916d"
                  }
                }
              },
              {
                "title": "LV012-Makefile文件分析",
                "url": "/sdoc/dev-tool/stm32cube/126b08e6ef7626b7c442bfe2.html",
                "frontmatter": {
                  "title": "LV012-Makefile文件分析",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/dev-tool/stm32cube/126b08e6ef7626b7c442bfe2",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "7c442bfe2f7348608819bf852cebb54e",
                    "useduuid": "7c442bfe2"
                  }
                }
              },
              {
                "title": "LV040-LD链接脚本",
                "url": "/sdoc/dev-tool/keil/126b08e6f2e40a653e71bc02.html",
                "frontmatter": {
                  "title": "LV040-LD链接脚本",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/dev-tool/keil/126b08e6f2e40a653e71bc02",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "53e71bc02dd346aeac5749700b205317",
                    "useduuid": "53e71bc02"
                  }
                }
              },
              {
                "title": "LV030-STM32CubeIDE",
                "url": "/sdoc/dev-tool/stm32cube/126b08e6f0211b46eabe9106.html",
                "frontmatter": {
                  "title": "LV030-STM32CubeIDE",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/dev-tool/stm32cube/126b08e6f0211b46eabe9106",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "6eabe9106e39465d81b7853e19f74deb",
                    "useduuid": "6eabe9106"
                  }
                }
              }
            ],
            "frontmatter": {}
          },
          {
            "title": "10-下载与调试",
            "children": [
              {
                "title": "LV001-下载与调试概述",
                "url": "/sdoc/dev-tool/burn-and-debug/126b08ab16fa3e011692369d.html",
                "frontmatter": {
                  "title": "LV001-下载与调试概述",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/dev-tool/burn-and-debug/126b08ab16fa3e011692369d",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "11692369dc744332bc6f2569dd8ec58a",
                    "useduuid": "11692369d"
                  }
                }
              },
              {
                "title": "LV002-JLink怎么使用",
                "url": "/sdoc/dev-tool/burn-and-debug/126b08ab15ee0921c4f7fd64.html",
                "frontmatter": {
                  "title": "LV002-JLink怎么使用",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/dev-tool/burn-and-debug/126b08ab15ee0921c4f7fd64",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "1c4f7fd64909407cb589ad3348a0c376",
                    "useduuid": "1c4f7fd64"
                  }
                }
              },
              {
                "title": "LV010-JFlash简介",
                "url": "/sdoc/dev-tool/burn-and-debug/126b08b7f6ce25a6c770f3b5.html",
                "frontmatter": {
                  "title": "LV010-JFlash简介",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/dev-tool/burn-and-debug/126b08b7f6ce25a6c770f3b5",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "6c770f3b50d84d7fad7f77bc05f872fc",
                    "useduuid": "6c770f3b5"
                  }
                }
              },
              {
                "title": "LV015-STLink怎么使用",
                "url": "/sdoc/dev-tool/burn-and-debug/126b08b9c98b11187c20e13a.html",
                "frontmatter": {
                  "title": "LV015-STLink怎么使用",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/dev-tool/burn-and-debug/126b08b9c98b11187c20e13a",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "87c20e13a48a44dfb380f22a1b102e34",
                    "useduuid": "87c20e13a"
                  }
                }
              },
              {
                "title": "LV020-ST-LINK-Utility简介",
                "url": "/sdoc/dev-tool/burn-and-debug/126b08b9cb90276fafba387f.html",
                "frontmatter": {
                  "title": "LV020-ST-LINK-Utility简介",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/dev-tool/burn-and-debug/126b08b9cb90276fafba387f",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "fafba387f5f84aab849e4d8b464e22ad",
                    "useduuid": "fafba387f"
                  }
                }
              },
              {
                "title": "LV030-串口下载",
                "url": "/sdoc/dev-tool/burn-and-debug/126b08b9cea618afd74b243b.html",
                "frontmatter": {
                  "title": "LV030-串口下载",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/dev-tool/burn-and-debug/126b08b9cea618afd74b243b",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "fd74b243b22149fe9c55a56a7b50b6d5",
                    "useduuid": "fd74b243b"
                  }
                }
              }
            ],
            "frontmatter": {}
          }
        ]
      },
      "sdoc/10-基础篇/01-概述/index": {
        "url": "sdoc/basic/overview/126b08ba0e6d394d4eb563f9.html",
        "path": "sdoc/10-基础篇/01-概述",
        "catalogues": [
          {
            "title": "LV001-ARM体系结构",
            "url": "/sdoc/basic/overview/126b08ba0eae364f31526d00.html",
            "frontmatter": {
              "title": "LV001-ARM体系结构",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/basic/overview/126b08ba0eae364f31526d00",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "f31526d004e841cf942bb1c43e30f261",
                "useduuid": "f31526d00"
              }
            }
          },
          {
            "title": "LV010-常见存储器",
            "url": "/sdoc/basic/overview/126b08ba13b3329986816cf4.html",
            "frontmatter": {
              "title": "LV010-常见存储器",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/basic/overview/126b08ba13b3329986816cf4",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "986816cf43ae496ea97f2ac2344cf4bc",
                "useduuid": "986816cf4"
              }
            }
          },
          {
            "title": "LV020-CortexM0简介",
            "url": "/sdoc/basic/overview/126b08c738bc16b5b982661d.html",
            "frontmatter": {
              "title": "LV020-CortexM0简介",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/basic/overview/126b08c738bc16b5b982661d",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "5b982661dbf54e3db91954b53e220c58",
                "useduuid": "5b982661d"
              }
            }
          },
          {
            "title": "LV022-CortexM0存储器映射",
            "url": "/sdoc/basic/overview/126b08e6a7051c291c1151a6.html",
            "frontmatter": {
              "title": "LV022-CortexM0存储器映射",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/basic/overview/126b08e6a7051c291c1151a6",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "91c1151a6b3c4a07b26e0383912b8543",
                "useduuid": "91c1151a6"
              }
            }
          },
          {
            "title": "LV030-CortexM3简介",
            "url": "/sdoc/basic/overview/126b08c73a222946645cba90.html",
            "frontmatter": {
              "title": "LV030-CortexM3简介",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/basic/overview/126b08c73a222946645cba90",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "6645cba90f414432ac823c9d1938fc37",
                "useduuid": "6645cba90"
              }
            }
          },
          {
            "title": "LV035-CortexM3存储器系统",
            "url": "/sdoc/basic/overview/126b08c73d361161792b640a.html",
            "frontmatter": {
              "title": "LV035-CortexM3存储器系统",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/basic/overview/126b08c73d361161792b640a",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "1792b640ad2b40c1a34cc0ea4da24ed9",
                "useduuid": "1792b640a"
              }
            }
          },
          {
            "title": "LV040-CortexM3异常",
            "url": "/sdoc/basic/overview/126b08e5d7b911b28ed9ee4c.html",
            "frontmatter": {
              "title": "LV040-CortexM3异常",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/basic/overview/126b08e5d7b911b28ed9ee4c",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "28ed9ee4c4ee4374a05b403be9d08519",
                "useduuid": "28ed9ee4c"
              }
            }
          },
          {
            "title": "LV040-CortexM3的NVIC中断控制",
            "url": "/sdoc/basic/overview/126b08e5fb5429a0009ffc8b.html",
            "frontmatter": {
              "title": "LV040-CortexM3的NVIC中断控制",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/basic/overview/126b08e5fb5429a0009ffc8b",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "0009ffc8b07a4e459a29f0ba0518592b",
                "useduuid": "0009ffc8b"
              }
            }
          }
        ]
      },
      "sdoc/10-基础篇/10-STM32基础/index": {
        "url": "sdoc/basic/stm32basic/126b08e5fe7229fef4ddea37.html",
        "path": "sdoc/10-基础篇/10-STM32基础",
        "catalogues": [
          {
            "title": "LV001-STM32概述",
            "url": "/sdoc/basic/stm32basic/126b08e5feaa2043ad05a48e.html",
            "frontmatter": {
              "title": "LV001-STM32概述",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/basic/stm32basic/126b08e5feaa2043ad05a48e",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "3ad05a48eac840679287e1b2301b039a",
                "useduuid": "3ad05a48e"
              }
            }
          },
          {
            "title": "LV010-嵌入式C语言",
            "url": "/sdoc/basic/stm32basic/126b08e600543a33cc0a657a.html",
            "frontmatter": {
              "title": "LV010-嵌入式C语言",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/basic/stm32basic/126b08e600543a33cc0a657a",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "3cc0a657a05d403785cc85fa30a99505",
                "useduuid": "3cc0a657a"
              }
            }
          },
          {
            "title": "LV020-STM32怎么开发",
            "url": "/sdoc/basic/stm32basic/126b08e603011c2e21862cc6.html",
            "frontmatter": {
              "title": "LV020-STM32怎么开发",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/basic/stm32basic/126b08e603011c2e21862cc6",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "e21862cc6b54423c827258b8732bcdd8",
                "useduuid": "e21862cc6"
              }
            }
          },
          {
            "title": "LV021-认识HAL库",
            "url": "/sdoc/basic/stm32basic/126b08e608d01035e7260fce.html",
            "frontmatter": {
              "title": "LV021-认识HAL库",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/basic/stm32basic/126b08e608d01035e7260fce",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "5e7260fce3184ab293e2a218bc58687b",
                "useduuid": "5e7260fce"
              }
            }
          },
          {
            "title": "LV030-STM32程序下载",
            "url": "/sdoc/basic/stm32basic/126b08e7828f108bc0b2f2dc.html",
            "frontmatter": {
              "title": "LV030-STM32程序下载",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/basic/stm32basic/126b08e7828f108bc0b2f2dc",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "bc0b2f2dc98042cb8e44dc7aa1995faa",
                "useduuid": "bc0b2f2dc"
              }
            }
          },
          {
            "title": "LV040-STM32系统架构",
            "url": "/sdoc/basic/stm32basic/126b08e6831f0a0031c3f015.html",
            "frontmatter": {
              "title": "LV040-STM32系统架构",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/basic/stm32basic/126b08e6831f0a0031c3f015",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "031c3f0159bd41bfa7f2e89f6b50e340",
                "useduuid": "031c3f015"
              }
            }
          },
          {
            "title": "LV045-STM32存储器系统",
            "url": "/sdoc/basic/stm32basic/126b08e6840f3457e72c8780.html",
            "frontmatter": {
              "title": "LV045-STM32存储器系统",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/basic/stm32basic/126b08e6840f3457e72c8780",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "7e72c87803ee4322bcd1072590f70cb3",
                "useduuid": "7e72c8780"
              }
            }
          },
          {
            "title": "LV050-STM32地址重映射",
            "url": "/sdoc/basic/stm32basic/126b08e6a53918eab18839bd.html",
            "frontmatter": {
              "title": "LV050-STM32地址重映射",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/basic/stm32basic/126b08e6a53918eab18839bd",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "ab18839bd52b440b9ca51fa34ea3d714",
                "useduuid": "ab18839bd"
              }
            }
          }
        ]
      },
      "sdoc/10-基础篇/20-STM32的启动/index": {
        "url": "sdoc/basic/stm32setup/126b08e788d3105084b556cd.html",
        "path": "sdoc/10-基础篇/20-STM32的启动",
        "catalogues": [
          {
            "title": "LV001-启动文件",
            "url": "/sdoc/basic/stm32setup/126b08e788e83383285742cb.html",
            "frontmatter": {
              "title": "LV001-启动文件",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/basic/stm32setup/126b08e788e83383285742cb",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "3285742cb8d24fba98867646d8e8231b",
                "useduuid": "3285742cb"
              }
            }
          },
          {
            "title": "LV005-启动过程",
            "url": "/sdoc/basic/stm32setup/126b08e78de70b59cd9ba362.html",
            "frontmatter": {
              "title": "LV005-启动过程",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/basic/stm32setup/126b08e78de70b59cd9ba362",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "9cd9ba36208d49f99352645293a0d904",
                "useduuid": "9cd9ba362"
              }
            }
          },
          {
            "title": "LV010-在内部SRAM调试",
            "url": "/sdoc/basic/stm32setup/126b08e7afad049a561ccf1b.html",
            "frontmatter": {
              "title": "LV010-在内部SRAM调试",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/basic/stm32setup/126b08e7afad049a561ccf1b",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "a561ccf1b5d3443c85b0f21280803c3a",
                "useduuid": "a561ccf1b"
              }
            }
          }
        ]
      },
      "sdoc/10-基础篇/30-STM32的中断/index": {
        "url": "sdoc/basic/stm32interrupt/126b08f5722f25a054f0a4aa.html",
        "path": "sdoc/10-基础篇/30-STM32的中断",
        "catalogues": [
          {
            "title": "LV001-STM32中断简介",
            "url": "/sdoc/basic/stm32interrupt/126b08f57241322fa604782d.html",
            "frontmatter": {
              "title": "LV001-STM32中断简介",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/basic/stm32interrupt/126b08f57241322fa604782d",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "fa604782d9e94117829d0f1a00c0d99d",
                "useduuid": "fa604782d"
              }
            }
          }
        ]
      },
      "sdoc/10-基础篇/40-STM32时钟/index": {
        "url": "sdoc/basic/stm32clock/126b08f5d87c1eab6c3871dc.html",
        "path": "sdoc/10-基础篇/40-STM32时钟",
        "catalogues": [
          {
            "title": "LV001-STM32F1时钟系统",
            "url": "/sdoc/basic/stm32clock/126b08f5d89727a6ee395582.html",
            "frontmatter": {
              "title": "LV001-STM32F1时钟系统",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/basic/stm32clock/126b08f5d89727a6ee395582",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "6ee395582b8f401e806f3f6b8aac7e4a",
                "useduuid": "6ee395582"
              }
            }
          },
          {
            "title": "LV010-STM32F1的SYSCLK",
            "url": "/sdoc/basic/stm32clock/126b08f5dcd1392ef8558043.html",
            "frontmatter": {
              "title": "LV010-STM32F1的SYSCLK",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/basic/stm32clock/126b08f5dcd1392ef8558043",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "ef8558043211434e9696dd7586e40951",
                "useduuid": "ef8558043"
              }
            }
          }
        ]
      },
      "sdoc/10-基础篇/50-STM32内部FLASH/index": {
        "url": "sdoc/basic/stm32flash/126b093451ee0b11abb28aa5.html",
        "path": "sdoc/10-基础篇/50-STM32内部FLASH",
        "catalogues": [
          {
            "title": "LV001-内部FLASH简介",
            "url": "/sdoc/basic/stm32flash/126b09345207167f3ed95339.html",
            "frontmatter": {
              "title": "LV001-内部FLASH简介",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/basic/stm32flash/126b09345207167f3ed95339",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "f3ed95339a054335bd7861fbbdfca984",
                "useduuid": "f3ed95339"
              }
            }
          },
          {
            "title": "LV010-FLASH操作流程",
            "url": "/sdoc/basic/stm32flash/126b0934555e1e98aa9081c5.html",
            "frontmatter": {
              "title": "LV010-FLASH操作流程",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/basic/stm32flash/126b0934555e1e98aa9081c5",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "8aa9081c5bfb4658bc14302518ab96b3",
                "useduuid": "8aa9081c5"
              }
            }
          },
          {
            "title": "LV020-IAP编程简介",
            "url": "/sdoc/basic/stm32flash/126b0e26745a3124f27972bd.html",
            "frontmatter": {
              "title": "LV020-IAP编程简介",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/basic/stm32flash/126b0e26745a3124f27972bd",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "4f27972bd3fc4860b4605d3ba9d93bb7",
                "useduuid": "4f27972bd"
              }
            }
          },
          {
            "title": "LV025-IAP编程实现",
            "url": "/sdoc/basic/stm32flash/126b0e4540061175c7584cc2.html",
            "frontmatter": {
              "title": "LV025-IAP编程实现",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/basic/stm32flash/126b0e4540061175c7584cc2",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "5c7584cc23ea451aaa122d51f3053c7c",
                "useduuid": "5c7584cc2"
              }
            }
          }
        ]
      },
      "sdoc/10-基础篇/60-STM32的内存/index": {
        "url": "sdoc/basic/stm32memory/126b094142e21f978c1c589e.html",
        "path": "sdoc/10-基础篇/60-STM32的内存",
        "catalogues": [
          {
            "title": "LV001-STM32内存简介",
            "url": "/sdoc/basic/stm32memory/126b0941431c016e4bdd2a68.html",
            "frontmatter": {
              "title": "LV001-STM32内存简介",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/basic/stm32memory/126b0941431c016e4bdd2a68",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "e4bdd2a68030419b91dea7af452724aa",
                "useduuid": "e4bdd2a68"
              }
            }
          },
          {
            "title": "LV010-内存管理",
            "url": "/sdoc/basic/stm32memory/126b0e24d5e326e3a7296e85.html",
            "frontmatter": {
              "title": "LV010-内存管理",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/basic/stm32memory/126b0e24d5e326e3a7296e85",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "3a7296e85ae54af393dd0790947698ce",
                "useduuid": "3a7296e85"
              }
            }
          }
        ]
      },
      "sdoc/10-基础篇/70-STM32电源管理/index": {
        "url": "sdoc/basic/stm32pwr/126b09513f0a17a9a28ea1f0.html",
        "path": "sdoc/10-基础篇/70-STM32电源管理",
        "catalogues": [
          {
            "title": "LV001-电源管理简介",
            "url": "/sdoc/basic/stm32pwr/126b09513f17393c50358806.html",
            "frontmatter": {
              "title": "LV001-电源管理简介",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/basic/stm32pwr/126b09513f17393c50358806",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "c503588060cf485a965221f48977e91d",
                "useduuid": "c50358806"
              }
            }
          },
          {
            "title": "LV010-三种模式实现",
            "url": "/sdoc/basic/stm32pwr/126b095140443bc89b1ebe84.html",
            "frontmatter": {
              "title": "LV010-三种模式实现",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/basic/stm32pwr/126b095140443bc89b1ebe84",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "89b1ebe841074780aa0a2abaac3caa24",
                "useduuid": "89b1ebe84"
              }
            }
          }
        ]
      },
      "sdoc/10-基础篇/index": {
        "url": "sdoc/basic/126b08ba0be902f861c0b265.html",
        "path": "sdoc/10-基础篇",
        "catalogues": [
          {
            "title": "01-概述",
            "children": [
              {
                "title": "LV001-ARM体系结构",
                "url": "/sdoc/basic/overview/126b08ba0eae364f31526d00.html",
                "frontmatter": {
                  "title": "LV001-ARM体系结构",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/basic/overview/126b08ba0eae364f31526d00",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "f31526d004e841cf942bb1c43e30f261",
                    "useduuid": "f31526d00"
                  }
                }
              },
              {
                "title": "LV010-常见存储器",
                "url": "/sdoc/basic/overview/126b08ba13b3329986816cf4.html",
                "frontmatter": {
                  "title": "LV010-常见存储器",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/basic/overview/126b08ba13b3329986816cf4",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "986816cf43ae496ea97f2ac2344cf4bc",
                    "useduuid": "986816cf4"
                  }
                }
              },
              {
                "title": "LV020-CortexM0简介",
                "url": "/sdoc/basic/overview/126b08c738bc16b5b982661d.html",
                "frontmatter": {
                  "title": "LV020-CortexM0简介",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/basic/overview/126b08c738bc16b5b982661d",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "5b982661dbf54e3db91954b53e220c58",
                    "useduuid": "5b982661d"
                  }
                }
              },
              {
                "title": "LV022-CortexM0存储器映射",
                "url": "/sdoc/basic/overview/126b08e6a7051c291c1151a6.html",
                "frontmatter": {
                  "title": "LV022-CortexM0存储器映射",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/basic/overview/126b08e6a7051c291c1151a6",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "91c1151a6b3c4a07b26e0383912b8543",
                    "useduuid": "91c1151a6"
                  }
                }
              },
              {
                "title": "LV030-CortexM3简介",
                "url": "/sdoc/basic/overview/126b08c73a222946645cba90.html",
                "frontmatter": {
                  "title": "LV030-CortexM3简介",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/basic/overview/126b08c73a222946645cba90",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "6645cba90f414432ac823c9d1938fc37",
                    "useduuid": "6645cba90"
                  }
                }
              },
              {
                "title": "LV035-CortexM3存储器系统",
                "url": "/sdoc/basic/overview/126b08c73d361161792b640a.html",
                "frontmatter": {
                  "title": "LV035-CortexM3存储器系统",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/basic/overview/126b08c73d361161792b640a",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "1792b640ad2b40c1a34cc0ea4da24ed9",
                    "useduuid": "1792b640a"
                  }
                }
              },
              {
                "title": "LV040-CortexM3异常",
                "url": "/sdoc/basic/overview/126b08e5d7b911b28ed9ee4c.html",
                "frontmatter": {
                  "title": "LV040-CortexM3异常",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/basic/overview/126b08e5d7b911b28ed9ee4c",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "28ed9ee4c4ee4374a05b403be9d08519",
                    "useduuid": "28ed9ee4c"
                  }
                }
              },
              {
                "title": "LV040-CortexM3的NVIC中断控制",
                "url": "/sdoc/basic/overview/126b08e5fb5429a0009ffc8b.html",
                "frontmatter": {
                  "title": "LV040-CortexM3的NVIC中断控制",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/basic/overview/126b08e5fb5429a0009ffc8b",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "0009ffc8b07a4e459a29f0ba0518592b",
                    "useduuid": "0009ffc8b"
                  }
                }
              }
            ],
            "frontmatter": {}
          },
          {
            "title": "10-STM32基础",
            "children": [
              {
                "title": "LV001-STM32概述",
                "url": "/sdoc/basic/stm32basic/126b08e5feaa2043ad05a48e.html",
                "frontmatter": {
                  "title": "LV001-STM32概述",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/basic/stm32basic/126b08e5feaa2043ad05a48e",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "3ad05a48eac840679287e1b2301b039a",
                    "useduuid": "3ad05a48e"
                  }
                }
              },
              {
                "title": "LV010-嵌入式C语言",
                "url": "/sdoc/basic/stm32basic/126b08e600543a33cc0a657a.html",
                "frontmatter": {
                  "title": "LV010-嵌入式C语言",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/basic/stm32basic/126b08e600543a33cc0a657a",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "3cc0a657a05d403785cc85fa30a99505",
                    "useduuid": "3cc0a657a"
                  }
                }
              },
              {
                "title": "LV020-STM32怎么开发",
                "url": "/sdoc/basic/stm32basic/126b08e603011c2e21862cc6.html",
                "frontmatter": {
                  "title": "LV020-STM32怎么开发",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/basic/stm32basic/126b08e603011c2e21862cc6",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "e21862cc6b54423c827258b8732bcdd8",
                    "useduuid": "e21862cc6"
                  }
                }
              },
              {
                "title": "LV021-认识HAL库",
                "url": "/sdoc/basic/stm32basic/126b08e608d01035e7260fce.html",
                "frontmatter": {
                  "title": "LV021-认识HAL库",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/basic/stm32basic/126b08e608d01035e7260fce",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "5e7260fce3184ab293e2a218bc58687b",
                    "useduuid": "5e7260fce"
                  }
                }
              },
              {
                "title": "LV030-STM32程序下载",
                "url": "/sdoc/basic/stm32basic/126b08e7828f108bc0b2f2dc.html",
                "frontmatter": {
                  "title": "LV030-STM32程序下载",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/basic/stm32basic/126b08e7828f108bc0b2f2dc",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "bc0b2f2dc98042cb8e44dc7aa1995faa",
                    "useduuid": "bc0b2f2dc"
                  }
                }
              },
              {
                "title": "LV040-STM32系统架构",
                "url": "/sdoc/basic/stm32basic/126b08e6831f0a0031c3f015.html",
                "frontmatter": {
                  "title": "LV040-STM32系统架构",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/basic/stm32basic/126b08e6831f0a0031c3f015",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "031c3f0159bd41bfa7f2e89f6b50e340",
                    "useduuid": "031c3f015"
                  }
                }
              },
              {
                "title": "LV045-STM32存储器系统",
                "url": "/sdoc/basic/stm32basic/126b08e6840f3457e72c8780.html",
                "frontmatter": {
                  "title": "LV045-STM32存储器系统",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/basic/stm32basic/126b08e6840f3457e72c8780",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "7e72c87803ee4322bcd1072590f70cb3",
                    "useduuid": "7e72c8780"
                  }
                }
              },
              {
                "title": "LV050-STM32地址重映射",
                "url": "/sdoc/basic/stm32basic/126b08e6a53918eab18839bd.html",
                "frontmatter": {
                  "title": "LV050-STM32地址重映射",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/basic/stm32basic/126b08e6a53918eab18839bd",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "ab18839bd52b440b9ca51fa34ea3d714",
                    "useduuid": "ab18839bd"
                  }
                }
              }
            ],
            "frontmatter": {}
          },
          {
            "title": "20-STM32的启动",
            "children": [
              {
                "title": "LV001-启动文件",
                "url": "/sdoc/basic/stm32setup/126b08e788e83383285742cb.html",
                "frontmatter": {
                  "title": "LV001-启动文件",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/basic/stm32setup/126b08e788e83383285742cb",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "3285742cb8d24fba98867646d8e8231b",
                    "useduuid": "3285742cb"
                  }
                }
              },
              {
                "title": "LV005-启动过程",
                "url": "/sdoc/basic/stm32setup/126b08e78de70b59cd9ba362.html",
                "frontmatter": {
                  "title": "LV005-启动过程",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/basic/stm32setup/126b08e78de70b59cd9ba362",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "9cd9ba36208d49f99352645293a0d904",
                    "useduuid": "9cd9ba362"
                  }
                }
              },
              {
                "title": "LV010-在内部SRAM调试",
                "url": "/sdoc/basic/stm32setup/126b08e7afad049a561ccf1b.html",
                "frontmatter": {
                  "title": "LV010-在内部SRAM调试",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/basic/stm32setup/126b08e7afad049a561ccf1b",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "a561ccf1b5d3443c85b0f21280803c3a",
                    "useduuid": "a561ccf1b"
                  }
                }
              }
            ],
            "frontmatter": {}
          },
          {
            "title": "30-STM32的中断",
            "children": [
              {
                "title": "LV001-STM32中断简介",
                "url": "/sdoc/basic/stm32interrupt/126b08f57241322fa604782d.html",
                "frontmatter": {
                  "title": "LV001-STM32中断简介",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/basic/stm32interrupt/126b08f57241322fa604782d",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "fa604782d9e94117829d0f1a00c0d99d",
                    "useduuid": "fa604782d"
                  }
                }
              }
            ],
            "frontmatter": {}
          },
          {
            "title": "40-STM32时钟",
            "children": [
              {
                "title": "LV001-STM32F1时钟系统",
                "url": "/sdoc/basic/stm32clock/126b08f5d89727a6ee395582.html",
                "frontmatter": {
                  "title": "LV001-STM32F1时钟系统",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/basic/stm32clock/126b08f5d89727a6ee395582",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "6ee395582b8f401e806f3f6b8aac7e4a",
                    "useduuid": "6ee395582"
                  }
                }
              },
              {
                "title": "LV010-STM32F1的SYSCLK",
                "url": "/sdoc/basic/stm32clock/126b08f5dcd1392ef8558043.html",
                "frontmatter": {
                  "title": "LV010-STM32F1的SYSCLK",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/basic/stm32clock/126b08f5dcd1392ef8558043",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "ef8558043211434e9696dd7586e40951",
                    "useduuid": "ef8558043"
                  }
                }
              }
            ],
            "frontmatter": {}
          },
          {
            "title": "50-STM32内部FLASH",
            "children": [
              {
                "title": "LV001-内部FLASH简介",
                "url": "/sdoc/basic/stm32flash/126b09345207167f3ed95339.html",
                "frontmatter": {
                  "title": "LV001-内部FLASH简介",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/basic/stm32flash/126b09345207167f3ed95339",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "f3ed95339a054335bd7861fbbdfca984",
                    "useduuid": "f3ed95339"
                  }
                }
              },
              {
                "title": "LV010-FLASH操作流程",
                "url": "/sdoc/basic/stm32flash/126b0934555e1e98aa9081c5.html",
                "frontmatter": {
                  "title": "LV010-FLASH操作流程",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/basic/stm32flash/126b0934555e1e98aa9081c5",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "8aa9081c5bfb4658bc14302518ab96b3",
                    "useduuid": "8aa9081c5"
                  }
                }
              },
              {
                "title": "LV020-IAP编程简介",
                "url": "/sdoc/basic/stm32flash/126b0e26745a3124f27972bd.html",
                "frontmatter": {
                  "title": "LV020-IAP编程简介",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/basic/stm32flash/126b0e26745a3124f27972bd",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "4f27972bd3fc4860b4605d3ba9d93bb7",
                    "useduuid": "4f27972bd"
                  }
                }
              },
              {
                "title": "LV025-IAP编程实现",
                "url": "/sdoc/basic/stm32flash/126b0e4540061175c7584cc2.html",
                "frontmatter": {
                  "title": "LV025-IAP编程实现",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/basic/stm32flash/126b0e4540061175c7584cc2",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "5c7584cc23ea451aaa122d51f3053c7c",
                    "useduuid": "5c7584cc2"
                  }
                }
              }
            ],
            "frontmatter": {}
          },
          {
            "title": "60-STM32的内存",
            "children": [
              {
                "title": "LV001-STM32内存简介",
                "url": "/sdoc/basic/stm32memory/126b0941431c016e4bdd2a68.html",
                "frontmatter": {
                  "title": "LV001-STM32内存简介",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/basic/stm32memory/126b0941431c016e4bdd2a68",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "e4bdd2a68030419b91dea7af452724aa",
                    "useduuid": "e4bdd2a68"
                  }
                }
              },
              {
                "title": "LV010-内存管理",
                "url": "/sdoc/basic/stm32memory/126b0e24d5e326e3a7296e85.html",
                "frontmatter": {
                  "title": "LV010-内存管理",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/basic/stm32memory/126b0e24d5e326e3a7296e85",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "3a7296e85ae54af393dd0790947698ce",
                    "useduuid": "3a7296e85"
                  }
                }
              }
            ],
            "frontmatter": {}
          },
          {
            "title": "70-STM32电源管理",
            "children": [
              {
                "title": "LV001-电源管理简介",
                "url": "/sdoc/basic/stm32pwr/126b09513f17393c50358806.html",
                "frontmatter": {
                  "title": "LV001-电源管理简介",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/basic/stm32pwr/126b09513f17393c50358806",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "c503588060cf485a965221f48977e91d",
                    "useduuid": "c50358806"
                  }
                }
              },
              {
                "title": "LV010-三种模式实现",
                "url": "/sdoc/basic/stm32pwr/126b095140443bc89b1ebe84.html",
                "frontmatter": {
                  "title": "LV010-三种模式实现",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/basic/stm32pwr/126b095140443bc89b1ebe84",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "89b1ebe841074780aa0a2abaac3caa24",
                    "useduuid": "89b1ebe84"
                  }
                }
              }
            ],
            "frontmatter": {}
          }
        ]
      },
      "sdoc/20-基本外设篇/01-GPIO/index": {
        "url": "sdoc/peripheral/gpio/126b08e802bd2a57f9711bf1.html",
        "path": "sdoc/20-基本外设篇/01-GPIO",
        "catalogues": [
          {
            "title": "LV001-STM32的GPIO简介",
            "url": "/sdoc/peripheral/gpio/126b08e802d21f6e4f658296.html",
            "frontmatter": {
              "title": "LV001-STM32的GPIO简介",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/peripheral/gpio/126b08e802d21f6e4f658296",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "e4f658296d8f440694a80e81f31777d4",
                "useduuid": "e4f658296"
              }
            }
          },
          {
            "title": "LV010-输入输出模式详解",
            "url": "/sdoc/peripheral/gpio/126b08e804d303ad5b541ecd.html",
            "frontmatter": {
              "title": "LV010-输入输出模式详解",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/peripheral/gpio/126b08e804d303ad5b541ecd",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "d5b541ecde0f4e1799e17d09e88a33fa",
                "useduuid": "d5b541ecd"
              }
            }
          },
          {
            "title": "LV020-GPIO控制LED",
            "url": "/sdoc/peripheral/gpio/126b08e805ca1e15c40474c4.html",
            "frontmatter": {
              "title": "LV020-GPIO控制LED",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/peripheral/gpio/126b08e805ca1e15c40474c4",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "5c40474c47fc44e49114f4489f7fb359",
                "useduuid": "5c40474c4"
              }
            }
          },
          {
            "title": "LV030-按键检测",
            "url": "/sdoc/peripheral/gpio/126b08e8078f1f2b7ad1d6a6.html",
            "frontmatter": {
              "title": "LV030-按键检测",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/peripheral/gpio/126b08e8078f1f2b7ad1d6a6",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "b7ad1d6a65df41fab1ae6bd4b2de28b9",
                "useduuid": "b7ad1d6a6"
              }
            }
          },
          {
            "title": "LV040-外部中断",
            "url": "/sdoc/peripheral/gpio/126b08f58a5c2c09e1d6100f.html",
            "frontmatter": {
              "title": "LV040-外部中断",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/peripheral/gpio/126b08f58a5c2c09e1d6100f",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "9e1d6100f7d74737974bd9674a8ba8c0",
                "useduuid": "9e1d6100f"
              }
            }
          },
          {
            "title": "LV045-外部中断实例",
            "url": "/sdoc/peripheral/gpio/126b08f596281cc89a3bc4c6.html",
            "frontmatter": {
              "title": "LV045-外部中断实例",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/peripheral/gpio/126b08f596281cc89a3bc4c6",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "89a3bc4c6a9b4249afce4152ca5d1241",
                "useduuid": "89a3bc4c6"
              }
            }
          }
        ]
      },
      "sdoc/20-基本外设篇/10-UART/index": {
        "url": "sdoc/peripheral/uart/126b08f60e8936153c897e51.html",
        "path": "sdoc/20-基本外设篇/10-UART",
        "catalogues": [
          {
            "title": "LV001-串口通信简介",
            "url": "/sdoc/peripheral/uart/126b08f60edb3b6ac7962cbf.html",
            "frontmatter": {
              "title": "LV001-串口通信简介",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/peripheral/uart/126b08f60edb3b6ac7962cbf",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "ac7962cbf7d245659539f5436bb59e37",
                "useduuid": "ac7962cbf"
              }
            }
          },
          {
            "title": "LV010-STM32的串口",
            "url": "/sdoc/peripheral/uart/126b08f6146d2d238b102738.html",
            "frontmatter": {
              "title": "LV010-STM32的串口",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/peripheral/uart/126b08f6146d2d238b102738",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "38b1027380d146cb959e571687931c97",
                "useduuid": "38b102738"
              }
            }
          },
          {
            "title": "LV020-串口收发实例",
            "url": "/sdoc/peripheral/uart/126b08f61664097f4a0617fc.html",
            "frontmatter": {
              "title": "LV020-串口收发实例",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/peripheral/uart/126b08f61664097f4a0617fc",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "f4a0617fc94447a8962e262d9db98842",
                "useduuid": "f4a0617fc"
              }
            }
          }
        ]
      },
      "sdoc/20-基本外设篇/15-定时器/index": {
        "url": "sdoc/peripheral/timer/126b08f6a16a27128730debb.html",
        "path": "sdoc/20-基本外设篇/15-定时器",
        "catalogues": [
          {
            "title": "LV001-基本定时器简介",
            "url": "/sdoc/peripheral/timer/basic/126b08f6a8e32e3427f3a2b2.html",
            "frontmatter": {
              "title": "LV001-基本定时器简介",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/peripheral/timer/basic/126b08f6a8e32e3427f3a2b2",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "427f3a2b26fc476299e1f6f52f2c33ad",
                "useduuid": "427f3a2b2"
              }
            }
          },
          {
            "title": "LV030-通用定时器简介",
            "url": "/sdoc/peripheral/timer/126b08f6aa441b536809798e.html",
            "frontmatter": {
              "title": "LV030-通用定时器简介",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/peripheral/timer/126b08f6aa441b536809798e",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "36809798e68046309b813b9706a23f8a",
                "useduuid": "36809798e"
              }
            }
          },
          {
            "title": "LV035-通用定时器的中断",
            "url": "/sdoc/peripheral/timer/126b08f6aa9f293ebbce26b2.html",
            "frontmatter": {
              "title": "LV035-通用定时器的中断",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/peripheral/timer/126b08f6aa9f293ebbce26b2",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "ebbce26b2eed4f0e8e7db13c33566c30",
                "useduuid": "ebbce26b2"
              }
            }
          },
          {
            "title": "LV040-通用定时器PWM输出",
            "url": "/sdoc/peripheral/timer/126b08f6aac20ab7bc66d777.html",
            "frontmatter": {
              "title": "LV040-通用定时器PWM输出",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/peripheral/timer/126b08f6aac20ab7bc66d777",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "7bc66d777a344e838bab8b97634f96bc",
                "useduuid": "7bc66d777"
              }
            }
          },
          {
            "title": "LV045-通用定时器输入捕获",
            "url": "/sdoc/peripheral/timer/126b08f6ab6404f5fdfb5648.html",
            "frontmatter": {
              "title": "LV045-通用定时器输入捕获",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/peripheral/timer/126b08f6ab6404f5fdfb5648",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "5fdfb5648d1542adb31bc692aaebfac4",
                "useduuid": "5fdfb5648"
              }
            }
          },
          {
            "title": "LV050-通用定时器脉冲计数",
            "url": "/sdoc/peripheral/timer/126b08f6ab873bc74e57e381.html",
            "frontmatter": {
              "title": "LV050-通用定时器脉冲计数",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/peripheral/timer/126b08f6ab873bc74e57e381",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "74e57e3815ac43a9b2ad64b853530fde",
                "useduuid": "74e57e381"
              }
            }
          },
          {
            "title": "LV070-高级定时器简介",
            "url": "/sdoc/peripheral/timer/126b08f6abf821065c6674f2.html",
            "frontmatter": {
              "title": "LV070-高级定时器简介",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/peripheral/timer/126b08f6abf821065c6674f2",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "65c6674f24194a5c905c5931e3b1bb25",
                "useduuid": "65c6674f2"
              }
            }
          },
          {
            "title": "LV075-高级定时器PWM输出",
            "url": "/sdoc/peripheral/timer/126b08f6ac4f2bb02b42403e.html",
            "frontmatter": {
              "title": "LV075-高级定时器PWM输出",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/peripheral/timer/126b08f6ac4f2bb02b42403e",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "02b42403e6334b1e88b3aefe535488bf",
                "useduuid": "02b42403e"
              }
            }
          },
          {
            "title": "LV080-高级定时器输出比较模式",
            "url": "/sdoc/peripheral/timer/126b08f6aca0253099c9ba29.html",
            "frontmatter": {
              "title": "LV080-高级定时器输出比较模式",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/peripheral/timer/126b08f6aca0253099c9ba29",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "099c9ba29781487ab77ef3977ecd7122",
                "useduuid": "099c9ba29"
              }
            }
          },
          {
            "title": "LV085-高级定时器互补输出",
            "url": "/sdoc/peripheral/timer/126b08f6ad8f2e0487d6c438.html",
            "frontmatter": {
              "title": "LV085-高级定时器互补输出",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/peripheral/timer/126b08f6ad8f2e0487d6c438",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "487d6c4384224a459898d149b83609e0",
                "useduuid": "487d6c438"
              }
            }
          },
          {
            "title": "LV090-高级定时器PWM输入",
            "url": "/sdoc/peripheral/timer/126b08f6ae2512a51a9eec42.html",
            "frontmatter": {
              "title": "LV090-高级定时器PWM输入",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/peripheral/timer/126b08f6ae2512a51a9eec42",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "51a9eec423e4412c99aa8247ccd2092d",
                "useduuid": "51a9eec42"
              }
            }
          },
          {
            "title": "LV100-SysTick定时器简介",
            "url": "/sdoc/peripheral/timer/126b08f7176d34627620ad1b.html",
            "frontmatter": {
              "title": "LV100-SysTick定时器简介",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/peripheral/timer/126b08f7176d34627620ad1b",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "27620ad1b6704f3ab64b6bc4d14b88f4",
                "useduuid": "27620ad1b"
              }
            }
          },
          {
            "title": "LV105-自定义延时函数",
            "url": "/sdoc/peripheral/timer/126b08f71bb31f61f9e3c819.html",
            "frontmatter": {
              "title": "LV105-自定义延时函数",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/peripheral/timer/126b08f71bb31f61f9e3c819",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "1f9e3c81978544cfa5b36e225514bb0d",
                "useduuid": "1f9e3c819"
              }
            }
          }
        ]
      },
      "sdoc/20-基本外设篇/20-看门狗/index": {
        "url": "sdoc/peripheral/watchdog/126b09043af80c9abdc4e3ef.html",
        "path": "sdoc/20-基本外设篇/20-看门狗",
        "catalogues": [
          {
            "title": "LV001-看门狗简介",
            "url": "/sdoc/peripheral/watchdog/126b09043ae916195cb39541.html",
            "frontmatter": {
              "title": "LV001-看门狗简介",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/peripheral/watchdog/126b09043ae916195cb39541",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "95cb3954118d49beb6d6912a9e3cb522",
                "useduuid": "95cb39541"
              }
            }
          },
          {
            "title": "LV010-看门狗使用实例",
            "url": "/sdoc/peripheral/watchdog/126b09043c29000296442c6e.html",
            "frontmatter": {
              "title": "LV010-看门狗使用实例",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/peripheral/watchdog/126b09043c29000296442c6e",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "296442c6e9ba4600b39cd12075ea87af",
                "useduuid": "296442c6e"
              }
            }
          }
        ]
      },
      "sdoc/20-基本外设篇/25-FSMC/01-FSMC基础/index": {
        "url": "sdoc/peripheral/fsmc/fsmc-basic/126b09248c5109dd1fe11f31.html",
        "path": "sdoc/20-基本外设篇/25-FSMC/01-FSMC基础",
        "catalogues": [
          {
            "title": "LV001-FSMC简介",
            "url": "/sdoc/peripheral/fsmc/fsmc-basic/126b092492553b23e8704ba7.html",
            "frontmatter": {
              "title": "LV001-FSMC简介",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/peripheral/fsmc/fsmc-basic/126b092492553b23e8704ba7",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "3e8704ba79214a3cbb9ab231d637b62e",
                "useduuid": "3e8704ba7"
              }
            }
          },
          {
            "title": "LV005-存储器映射与控制器",
            "url": "/sdoc/peripheral/fsmc/fsmc-basic/126b092499b000721416c9a0.html",
            "frontmatter": {
              "title": "LV005-存储器映射与控制器",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/peripheral/fsmc/fsmc-basic/126b092499b000721416c9a0",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "21416c9a03d8478188e3897a2c59aa5e",
                "useduuid": "21416c9a0"
              }
            }
          },
          {
            "title": "LV010-相关HAL库函数",
            "url": "/sdoc/peripheral/fsmc/fsmc-basic/126b0924b19533081adda526.html",
            "frontmatter": {
              "title": "LV010-相关HAL库函数",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/peripheral/fsmc/fsmc-basic/126b0924b19533081adda526",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "81adda5266e04132bfcad67ecceec69d",
                "useduuid": "81adda526"
              }
            }
          }
        ]
      },
      "sdoc/20-基本外设篇/25-FSMC/05-外部SRAM/index": {
        "url": "sdoc/peripheral/fsmc/sram/126b09248c59366360c72955.html",
        "path": "sdoc/20-基本外设篇/25-FSMC/05-外部SRAM",
        "catalogues": [
          {
            "title": "LV001-概述",
            "url": "/sdoc/peripheral/fsmc/sram/126b09248e5b007fcadf7acc.html",
            "frontmatter": {
              "title": "LV001-概述",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/peripheral/fsmc/sram/126b09248e5b007fcadf7acc",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "fcadf7accc90458fa4cab2cebf963be3",
                "useduuid": "fcadf7acc"
              }
            }
          },
          {
            "title": "LV002-XM8A51216简介",
            "url": "/sdoc/peripheral/fsmc/sram/126b09248ce51200a79d393f.html",
            "frontmatter": {
              "title": "LV002-XM8A51216简介",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/peripheral/fsmc/sram/126b09248ce51200a79d393f",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "0a79d393fee944b89889bdacfda6ea95",
                "useduuid": "0a79d393f"
              }
            }
          },
          {
            "title": "LV005-IS62WV51216简介",
            "url": "/sdoc/peripheral/fsmc/sram/126b09248db61d861c837fd7.html",
            "frontmatter": {
              "title": "LV005-IS62WV51216简介",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/peripheral/fsmc/sram/126b09248db61d861c837fd7",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "61c837fd7bf24e47b455ebbf97c03db7",
                "useduuid": "61c837fd7"
              }
            }
          },
          {
            "title": "LV015-外部SRAM读写实例",
            "url": "/sdoc/peripheral/fsmc/sram/126b0924b2d20263b97733d0.html",
            "frontmatter": {
              "title": "LV015-外部SRAM读写实例",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/peripheral/fsmc/sram/126b0924b2d20263b97733d0",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "3b97733d0c5f43148008ceafa2203f32",
                "useduuid": "3b97733d0"
              }
            }
          }
        ]
      },
      "sdoc/20-基本外设篇/25-FSMC/index": {
        "url": "sdoc/peripheral/fsmc/126b09248c2122169ae2fda2.html",
        "path": "sdoc/20-基本外设篇/25-FSMC",
        "catalogues": [
          {
            "title": "01-FSMC基础",
            "children": [
              {
                "title": "LV001-FSMC简介",
                "url": "/sdoc/peripheral/fsmc/fsmc-basic/126b092492553b23e8704ba7.html",
                "frontmatter": {
                  "title": "LV001-FSMC简介",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/peripheral/fsmc/fsmc-basic/126b092492553b23e8704ba7",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "3e8704ba79214a3cbb9ab231d637b62e",
                    "useduuid": "3e8704ba7"
                  }
                }
              },
              {
                "title": "LV005-存储器映射与控制器",
                "url": "/sdoc/peripheral/fsmc/fsmc-basic/126b092499b000721416c9a0.html",
                "frontmatter": {
                  "title": "LV005-存储器映射与控制器",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/peripheral/fsmc/fsmc-basic/126b092499b000721416c9a0",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "21416c9a03d8478188e3897a2c59aa5e",
                    "useduuid": "21416c9a0"
                  }
                }
              },
              {
                "title": "LV010-相关HAL库函数",
                "url": "/sdoc/peripheral/fsmc/fsmc-basic/126b0924b19533081adda526.html",
                "frontmatter": {
                  "title": "LV010-相关HAL库函数",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/peripheral/fsmc/fsmc-basic/126b0924b19533081adda526",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "81adda5266e04132bfcad67ecceec69d",
                    "useduuid": "81adda526"
                  }
                }
              }
            ],
            "frontmatter": {}
          },
          {
            "title": "05-外部SRAM",
            "children": [
              {
                "title": "LV001-概述",
                "url": "/sdoc/peripheral/fsmc/sram/126b09248e5b007fcadf7acc.html",
                "frontmatter": {
                  "title": "LV001-概述",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/peripheral/fsmc/sram/126b09248e5b007fcadf7acc",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "fcadf7accc90458fa4cab2cebf963be3",
                    "useduuid": "fcadf7acc"
                  }
                }
              },
              {
                "title": "LV002-XM8A51216简介",
                "url": "/sdoc/peripheral/fsmc/sram/126b09248ce51200a79d393f.html",
                "frontmatter": {
                  "title": "LV002-XM8A51216简介",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/peripheral/fsmc/sram/126b09248ce51200a79d393f",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "0a79d393fee944b89889bdacfda6ea95",
                    "useduuid": "0a79d393f"
                  }
                }
              },
              {
                "title": "LV005-IS62WV51216简介",
                "url": "/sdoc/peripheral/fsmc/sram/126b09248db61d861c837fd7.html",
                "frontmatter": {
                  "title": "LV005-IS62WV51216简介",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/peripheral/fsmc/sram/126b09248db61d861c837fd7",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "61c837fd7bf24e47b455ebbf97c03db7",
                    "useduuid": "61c837fd7"
                  }
                }
              },
              {
                "title": "LV015-外部SRAM读写实例",
                "url": "/sdoc/peripheral/fsmc/sram/126b0924b2d20263b97733d0.html",
                "frontmatter": {
                  "title": "LV015-外部SRAM读写实例",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/peripheral/fsmc/sram/126b0924b2d20263b97733d0",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "3b97733d0c5f43148008ceafa2203f32",
                    "useduuid": "3b97733d0"
                  }
                }
              }
            ],
            "frontmatter": {}
          }
        ]
      },
      "sdoc/20-基本外设篇/30-I2C/index": {
        "url": "sdoc/peripheral/i2c/126b09344bc72d87b3b3eff9.html",
        "path": "sdoc/20-基本外设篇/30-I2C",
        "catalogues": [
          {
            "title": "LV001-STM32的I2C",
            "url": "/sdoc/peripheral/i2c/126b09344c01323883ac1ab4.html",
            "frontmatter": {
              "title": "LV001-STM32的I2C",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/peripheral/i2c/126b09344c01323883ac1ab4",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "883ac1ab454e45c8903061818823ca7f",
                "useduuid": "883ac1ab4"
              }
            }
          },
          {
            "title": "LV010-AT24C02简介",
            "url": "/sdoc/peripheral/i2c/126b09344d8f021f00cacd6c.html",
            "frontmatter": {
              "title": "LV010-AT24C02简介",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/peripheral/i2c/126b09344d8f021f00cacd6c",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "f00cacd6ccbd4a459325107dc47b447a",
                "useduuid": "f00cacd6c"
              }
            }
          },
          {
            "title": "LV015-AT24C02使用实例",
            "url": "/sdoc/peripheral/i2c/126b09344f37186302faabd7.html",
            "frontmatter": {
              "title": "LV015-AT24C02使用实例",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/peripheral/i2c/126b09344f37186302faabd7",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "302faabd7f05494cbdcffb39c1c91164",
                "useduuid": "302faabd7"
              }
            }
          }
        ]
      },
      "sdoc/20-基本外设篇/35-SPI/index": {
        "url": "sdoc/peripheral/spi/126b0950f46d2b67951e2c74.html",
        "path": "sdoc/20-基本外设篇/35-SPI",
        "catalogues": [
          {
            "title": "LV001-STM32的SPI",
            "url": "/sdoc/peripheral/spi/126b0950f4ae14889c830ae3.html",
            "frontmatter": {
              "title": "LV001-STM32的SPI",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/peripheral/spi/126b0950f4ae14889c830ae3",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "89c830ae3a594952be17b5abc6bbb737",
                "useduuid": "89c830ae3"
              }
            }
          },
          {
            "title": "LV010-W25QXXX简介",
            "url": "/sdoc/peripheral/spi/126b0950f64a0b5a3fbcba93.html",
            "frontmatter": {
              "title": "LV010-W25QXXX简介",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/peripheral/spi/126b0950f64a0b5a3fbcba93",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "a3fbcba93d1642329a28cddcb65ad8e8",
                "useduuid": "a3fbcba93"
              }
            }
          },
          {
            "title": "LV015-SPI读写W25QXXX实例",
            "url": "/sdoc/peripheral/spi/126b0950f849211ff053e7ff.html",
            "frontmatter": {
              "title": "LV015-SPI读写W25QXXX实例",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/peripheral/spi/126b0950f849211ff053e7ff",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "ff053e7ff3e247358beec3bab1ba61de",
                "useduuid": "ff053e7ff"
              }
            }
          }
        ]
      },
      "sdoc/20-基本外设篇/40-DMA/index": {
        "url": "sdoc/peripheral/dma/126b0950fb76332c67477449.html",
        "path": "sdoc/20-基本外设篇/40-DMA",
        "catalogues": [
          {
            "title": "LV001-DMA简介",
            "url": "/sdoc/peripheral/dma/126b0950fbc52669af52caac.html",
            "frontmatter": {
              "title": "LV001-DMA简介",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/peripheral/dma/126b0950fbc52669af52caac",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "9af52caac91c42b1b28d2e09c22f8d43",
                "useduuid": "9af52caac"
              }
            }
          },
          {
            "title": "LV010-DMA使用实例",
            "url": "/sdoc/peripheral/dma/126b0950fc960317c7b64826.html",
            "frontmatter": {
              "title": "LV010-DMA使用实例",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/peripheral/dma/126b0950fc960317c7b64826",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "7c7b6482620b4698a5eac4b6e449f631",
                "useduuid": "7c7b64826"
              }
            }
          }
        ]
      },
      "sdoc/20-基本外设篇/50-SDIO/index": {
        "url": "sdoc/peripheral/sdio/126b0950fdc523d3bcab509d.html",
        "path": "sdoc/20-基本外设篇/50-SDIO",
        "catalogues": [
          {
            "title": "LV001-SD卡简介",
            "url": "/sdoc/peripheral/sdio/126b0950fe110bc81c4d2fd3.html",
            "frontmatter": {
              "title": "LV001-SD卡简介",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/peripheral/sdio/126b0950fe110bc81c4d2fd3",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "81c4d2fd3b3049a1a63dd12e12b5a3fa",
                "useduuid": "81c4d2fd3"
              }
            }
          },
          {
            "title": "LV015-SD卡的操作",
            "url": "/sdoc/peripheral/sdio/126b0950ff013d660d235356.html",
            "frontmatter": {
              "title": "LV015-SD卡的操作",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/peripheral/sdio/126b0950ff013d660d235356",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "60d235356a8a41c6b5be0b1b1d22ed03",
                "useduuid": "60d235356"
              }
            }
          },
          {
            "title": "LV020-STM32的SDIO",
            "url": "/sdoc/peripheral/sdio/126b0951000d2a75b964fa55.html",
            "frontmatter": {
              "title": "LV020-STM32的SDIO",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/peripheral/sdio/126b0951000d2a75b964fa55",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "5b964fa55b1c49f2849632ac18e58758",
                "useduuid": "5b964fa55"
              }
            }
          },
          {
            "title": "LV025-读写SD卡实例",
            "url": "/sdoc/peripheral/sdio/126b095100d21af60c8ed17e.html",
            "frontmatter": {
              "title": "LV025-读写SD卡实例",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/peripheral/sdio/126b095100d21af60c8ed17e",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "60c8ed17e9a9490aaf1efe2014ac5b67",
                "useduuid": "60c8ed17e"
              }
            }
          }
        ]
      },
      "sdoc/20-基本外设篇/55-RTC时钟/index": {
        "url": "sdoc/peripheral/rtc/126b09511e9e39a6b6fcf250.html",
        "path": "sdoc/20-基本外设篇/55-RTC时钟",
        "catalogues": [
          {
            "title": "LV001-RTC简介",
            "url": "/sdoc/peripheral/rtc/126b09511eac35920a3f191c.html",
            "frontmatter": {
              "title": "LV001-RTC简介",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/peripheral/rtc/126b09511eac35920a3f191c",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "20a3f191c6054d8d9f5fd53ff7b809de",
                "useduuid": "20a3f191c"
              }
            }
          }
        ]
      },
      "sdoc/20-基本外设篇/60-USB/index": {
        "url": "sdoc/peripheral/usb/126b095167923a1447b3ed2c.html",
        "path": "sdoc/20-基本外设篇/60-USB",
        "catalogues": [
          {
            "title": "LV001-USB简介",
            "url": "/sdoc/peripheral/usb/126b095167b12a8376012928.html",
            "frontmatter": {
              "title": "LV001-USB简介",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/peripheral/usb/126b095167b12a8376012928",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "3760129282bc45c68e9217915df4f46b",
                "useduuid": 376012928
              }
            }
          },
          {
            "title": "LV010-USB读卡器实例",
            "url": "/sdoc/peripheral/usb/126b095168b91d9fad5c2a07.html",
            "frontmatter": {
              "title": "LV010-USB读卡器实例",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/peripheral/usb/126b095168b91d9fad5c2a07",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "fad5c2a07ce14efe93e887b24a93fb47",
                "useduuid": "fad5c2a07"
              }
            }
          }
        ]
      },
      "sdoc/20-基本外设篇/index": {
        "url": "sdoc/peripherals/126b08ba0bf0218c6b2c4985.html",
        "path": "sdoc/20-基本外设篇",
        "catalogues": [
          {
            "title": "01-GPIO",
            "children": [
              {
                "title": "LV001-STM32的GPIO简介",
                "url": "/sdoc/peripheral/gpio/126b08e802d21f6e4f658296.html",
                "frontmatter": {
                  "title": "LV001-STM32的GPIO简介",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/peripheral/gpio/126b08e802d21f6e4f658296",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "e4f658296d8f440694a80e81f31777d4",
                    "useduuid": "e4f658296"
                  }
                }
              },
              {
                "title": "LV010-输入输出模式详解",
                "url": "/sdoc/peripheral/gpio/126b08e804d303ad5b541ecd.html",
                "frontmatter": {
                  "title": "LV010-输入输出模式详解",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/peripheral/gpio/126b08e804d303ad5b541ecd",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "d5b541ecde0f4e1799e17d09e88a33fa",
                    "useduuid": "d5b541ecd"
                  }
                }
              },
              {
                "title": "LV020-GPIO控制LED",
                "url": "/sdoc/peripheral/gpio/126b08e805ca1e15c40474c4.html",
                "frontmatter": {
                  "title": "LV020-GPIO控制LED",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/peripheral/gpio/126b08e805ca1e15c40474c4",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "5c40474c47fc44e49114f4489f7fb359",
                    "useduuid": "5c40474c4"
                  }
                }
              },
              {
                "title": "LV030-按键检测",
                "url": "/sdoc/peripheral/gpio/126b08e8078f1f2b7ad1d6a6.html",
                "frontmatter": {
                  "title": "LV030-按键检测",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/peripheral/gpio/126b08e8078f1f2b7ad1d6a6",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "b7ad1d6a65df41fab1ae6bd4b2de28b9",
                    "useduuid": "b7ad1d6a6"
                  }
                }
              },
              {
                "title": "LV040-外部中断",
                "url": "/sdoc/peripheral/gpio/126b08f58a5c2c09e1d6100f.html",
                "frontmatter": {
                  "title": "LV040-外部中断",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/peripheral/gpio/126b08f58a5c2c09e1d6100f",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "9e1d6100f7d74737974bd9674a8ba8c0",
                    "useduuid": "9e1d6100f"
                  }
                }
              },
              {
                "title": "LV045-外部中断实例",
                "url": "/sdoc/peripheral/gpio/126b08f596281cc89a3bc4c6.html",
                "frontmatter": {
                  "title": "LV045-外部中断实例",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/peripheral/gpio/126b08f596281cc89a3bc4c6",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "89a3bc4c6a9b4249afce4152ca5d1241",
                    "useduuid": "89a3bc4c6"
                  }
                }
              }
            ],
            "frontmatter": {}
          },
          {
            "title": "10-UART",
            "children": [
              {
                "title": "LV001-串口通信简介",
                "url": "/sdoc/peripheral/uart/126b08f60edb3b6ac7962cbf.html",
                "frontmatter": {
                  "title": "LV001-串口通信简介",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/peripheral/uart/126b08f60edb3b6ac7962cbf",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "ac7962cbf7d245659539f5436bb59e37",
                    "useduuid": "ac7962cbf"
                  }
                }
              },
              {
                "title": "LV010-STM32的串口",
                "url": "/sdoc/peripheral/uart/126b08f6146d2d238b102738.html",
                "frontmatter": {
                  "title": "LV010-STM32的串口",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/peripheral/uart/126b08f6146d2d238b102738",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "38b1027380d146cb959e571687931c97",
                    "useduuid": "38b102738"
                  }
                }
              },
              {
                "title": "LV020-串口收发实例",
                "url": "/sdoc/peripheral/uart/126b08f61664097f4a0617fc.html",
                "frontmatter": {
                  "title": "LV020-串口收发实例",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/peripheral/uart/126b08f61664097f4a0617fc",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "f4a0617fc94447a8962e262d9db98842",
                    "useduuid": "f4a0617fc"
                  }
                }
              }
            ],
            "frontmatter": {}
          },
          {
            "title": "15-定时器",
            "children": [
              {
                "title": "LV001-基本定时器简介",
                "url": "/sdoc/peripheral/timer/basic/126b08f6a8e32e3427f3a2b2.html",
                "frontmatter": {
                  "title": "LV001-基本定时器简介",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/peripheral/timer/basic/126b08f6a8e32e3427f3a2b2",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "427f3a2b26fc476299e1f6f52f2c33ad",
                    "useduuid": "427f3a2b2"
                  }
                }
              },
              {
                "title": "LV030-通用定时器简介",
                "url": "/sdoc/peripheral/timer/126b08f6aa441b536809798e.html",
                "frontmatter": {
                  "title": "LV030-通用定时器简介",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/peripheral/timer/126b08f6aa441b536809798e",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "36809798e68046309b813b9706a23f8a",
                    "useduuid": "36809798e"
                  }
                }
              },
              {
                "title": "LV035-通用定时器的中断",
                "url": "/sdoc/peripheral/timer/126b08f6aa9f293ebbce26b2.html",
                "frontmatter": {
                  "title": "LV035-通用定时器的中断",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/peripheral/timer/126b08f6aa9f293ebbce26b2",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "ebbce26b2eed4f0e8e7db13c33566c30",
                    "useduuid": "ebbce26b2"
                  }
                }
              },
              {
                "title": "LV040-通用定时器PWM输出",
                "url": "/sdoc/peripheral/timer/126b08f6aac20ab7bc66d777.html",
                "frontmatter": {
                  "title": "LV040-通用定时器PWM输出",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/peripheral/timer/126b08f6aac20ab7bc66d777",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "7bc66d777a344e838bab8b97634f96bc",
                    "useduuid": "7bc66d777"
                  }
                }
              },
              {
                "title": "LV045-通用定时器输入捕获",
                "url": "/sdoc/peripheral/timer/126b08f6ab6404f5fdfb5648.html",
                "frontmatter": {
                  "title": "LV045-通用定时器输入捕获",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/peripheral/timer/126b08f6ab6404f5fdfb5648",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "5fdfb5648d1542adb31bc692aaebfac4",
                    "useduuid": "5fdfb5648"
                  }
                }
              },
              {
                "title": "LV050-通用定时器脉冲计数",
                "url": "/sdoc/peripheral/timer/126b08f6ab873bc74e57e381.html",
                "frontmatter": {
                  "title": "LV050-通用定时器脉冲计数",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/peripheral/timer/126b08f6ab873bc74e57e381",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "74e57e3815ac43a9b2ad64b853530fde",
                    "useduuid": "74e57e381"
                  }
                }
              },
              {
                "title": "LV070-高级定时器简介",
                "url": "/sdoc/peripheral/timer/126b08f6abf821065c6674f2.html",
                "frontmatter": {
                  "title": "LV070-高级定时器简介",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/peripheral/timer/126b08f6abf821065c6674f2",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "65c6674f24194a5c905c5931e3b1bb25",
                    "useduuid": "65c6674f2"
                  }
                }
              },
              {
                "title": "LV075-高级定时器PWM输出",
                "url": "/sdoc/peripheral/timer/126b08f6ac4f2bb02b42403e.html",
                "frontmatter": {
                  "title": "LV075-高级定时器PWM输出",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/peripheral/timer/126b08f6ac4f2bb02b42403e",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "02b42403e6334b1e88b3aefe535488bf",
                    "useduuid": "02b42403e"
                  }
                }
              },
              {
                "title": "LV080-高级定时器输出比较模式",
                "url": "/sdoc/peripheral/timer/126b08f6aca0253099c9ba29.html",
                "frontmatter": {
                  "title": "LV080-高级定时器输出比较模式",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/peripheral/timer/126b08f6aca0253099c9ba29",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "099c9ba29781487ab77ef3977ecd7122",
                    "useduuid": "099c9ba29"
                  }
                }
              },
              {
                "title": "LV085-高级定时器互补输出",
                "url": "/sdoc/peripheral/timer/126b08f6ad8f2e0487d6c438.html",
                "frontmatter": {
                  "title": "LV085-高级定时器互补输出",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/peripheral/timer/126b08f6ad8f2e0487d6c438",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "487d6c4384224a459898d149b83609e0",
                    "useduuid": "487d6c438"
                  }
                }
              },
              {
                "title": "LV090-高级定时器PWM输入",
                "url": "/sdoc/peripheral/timer/126b08f6ae2512a51a9eec42.html",
                "frontmatter": {
                  "title": "LV090-高级定时器PWM输入",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/peripheral/timer/126b08f6ae2512a51a9eec42",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "51a9eec423e4412c99aa8247ccd2092d",
                    "useduuid": "51a9eec42"
                  }
                }
              },
              {
                "title": "LV100-SysTick定时器简介",
                "url": "/sdoc/peripheral/timer/126b08f7176d34627620ad1b.html",
                "frontmatter": {
                  "title": "LV100-SysTick定时器简介",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/peripheral/timer/126b08f7176d34627620ad1b",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "27620ad1b6704f3ab64b6bc4d14b88f4",
                    "useduuid": "27620ad1b"
                  }
                }
              },
              {
                "title": "LV105-自定义延时函数",
                "url": "/sdoc/peripheral/timer/126b08f71bb31f61f9e3c819.html",
                "frontmatter": {
                  "title": "LV105-自定义延时函数",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/peripheral/timer/126b08f71bb31f61f9e3c819",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "1f9e3c81978544cfa5b36e225514bb0d",
                    "useduuid": "1f9e3c819"
                  }
                }
              }
            ],
            "frontmatter": {}
          },
          {
            "title": "20-看门狗",
            "children": [
              {
                "title": "LV001-看门狗简介",
                "url": "/sdoc/peripheral/watchdog/126b09043ae916195cb39541.html",
                "frontmatter": {
                  "title": "LV001-看门狗简介",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/peripheral/watchdog/126b09043ae916195cb39541",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "95cb3954118d49beb6d6912a9e3cb522",
                    "useduuid": "95cb39541"
                  }
                }
              },
              {
                "title": "LV010-看门狗使用实例",
                "url": "/sdoc/peripheral/watchdog/126b09043c29000296442c6e.html",
                "frontmatter": {
                  "title": "LV010-看门狗使用实例",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/peripheral/watchdog/126b09043c29000296442c6e",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "296442c6e9ba4600b39cd12075ea87af",
                    "useduuid": "296442c6e"
                  }
                }
              }
            ],
            "frontmatter": {}
          },
          {
            "title": "25-FSMC",
            "children": [
              {
                "title": "01-FSMC基础",
                "children": [
                  {
                    "title": "LV001-FSMC简介",
                    "url": "/sdoc/peripheral/fsmc/fsmc-basic/126b092492553b23e8704ba7.html",
                    "frontmatter": {
                      "title": "LV001-FSMC简介",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/peripheral/fsmc/fsmc-basic/126b092492553b23e8704ba7",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "3e8704ba79214a3cbb9ab231d637b62e",
                        "useduuid": "3e8704ba7"
                      }
                    }
                  },
                  {
                    "title": "LV005-存储器映射与控制器",
                    "url": "/sdoc/peripheral/fsmc/fsmc-basic/126b092499b000721416c9a0.html",
                    "frontmatter": {
                      "title": "LV005-存储器映射与控制器",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/peripheral/fsmc/fsmc-basic/126b092499b000721416c9a0",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "21416c9a03d8478188e3897a2c59aa5e",
                        "useduuid": "21416c9a0"
                      }
                    }
                  },
                  {
                    "title": "LV010-相关HAL库函数",
                    "url": "/sdoc/peripheral/fsmc/fsmc-basic/126b0924b19533081adda526.html",
                    "frontmatter": {
                      "title": "LV010-相关HAL库函数",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/peripheral/fsmc/fsmc-basic/126b0924b19533081adda526",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "81adda5266e04132bfcad67ecceec69d",
                        "useduuid": "81adda526"
                      }
                    }
                  }
                ],
                "frontmatter": {}
              },
              {
                "title": "05-外部SRAM",
                "children": [
                  {
                    "title": "LV001-概述",
                    "url": "/sdoc/peripheral/fsmc/sram/126b09248e5b007fcadf7acc.html",
                    "frontmatter": {
                      "title": "LV001-概述",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/peripheral/fsmc/sram/126b09248e5b007fcadf7acc",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "fcadf7accc90458fa4cab2cebf963be3",
                        "useduuid": "fcadf7acc"
                      }
                    }
                  },
                  {
                    "title": "LV002-XM8A51216简介",
                    "url": "/sdoc/peripheral/fsmc/sram/126b09248ce51200a79d393f.html",
                    "frontmatter": {
                      "title": "LV002-XM8A51216简介",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/peripheral/fsmc/sram/126b09248ce51200a79d393f",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "0a79d393fee944b89889bdacfda6ea95",
                        "useduuid": "0a79d393f"
                      }
                    }
                  },
                  {
                    "title": "LV005-IS62WV51216简介",
                    "url": "/sdoc/peripheral/fsmc/sram/126b09248db61d861c837fd7.html",
                    "frontmatter": {
                      "title": "LV005-IS62WV51216简介",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/peripheral/fsmc/sram/126b09248db61d861c837fd7",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "61c837fd7bf24e47b455ebbf97c03db7",
                        "useduuid": "61c837fd7"
                      }
                    }
                  },
                  {
                    "title": "LV015-外部SRAM读写实例",
                    "url": "/sdoc/peripheral/fsmc/sram/126b0924b2d20263b97733d0.html",
                    "frontmatter": {
                      "title": "LV015-外部SRAM读写实例",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/peripheral/fsmc/sram/126b0924b2d20263b97733d0",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "3b97733d0c5f43148008ceafa2203f32",
                        "useduuid": "3b97733d0"
                      }
                    }
                  }
                ],
                "frontmatter": {}
              }
            ],
            "frontmatter": {}
          },
          {
            "title": "30-I2C",
            "children": [
              {
                "title": "LV001-STM32的I2C",
                "url": "/sdoc/peripheral/i2c/126b09344c01323883ac1ab4.html",
                "frontmatter": {
                  "title": "LV001-STM32的I2C",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/peripheral/i2c/126b09344c01323883ac1ab4",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "883ac1ab454e45c8903061818823ca7f",
                    "useduuid": "883ac1ab4"
                  }
                }
              },
              {
                "title": "LV010-AT24C02简介",
                "url": "/sdoc/peripheral/i2c/126b09344d8f021f00cacd6c.html",
                "frontmatter": {
                  "title": "LV010-AT24C02简介",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/peripheral/i2c/126b09344d8f021f00cacd6c",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "f00cacd6ccbd4a459325107dc47b447a",
                    "useduuid": "f00cacd6c"
                  }
                }
              },
              {
                "title": "LV015-AT24C02使用实例",
                "url": "/sdoc/peripheral/i2c/126b09344f37186302faabd7.html",
                "frontmatter": {
                  "title": "LV015-AT24C02使用实例",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/peripheral/i2c/126b09344f37186302faabd7",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "302faabd7f05494cbdcffb39c1c91164",
                    "useduuid": "302faabd7"
                  }
                }
              }
            ],
            "frontmatter": {}
          },
          {
            "title": "35-SPI",
            "children": [
              {
                "title": "LV001-STM32的SPI",
                "url": "/sdoc/peripheral/spi/126b0950f4ae14889c830ae3.html",
                "frontmatter": {
                  "title": "LV001-STM32的SPI",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/peripheral/spi/126b0950f4ae14889c830ae3",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "89c830ae3a594952be17b5abc6bbb737",
                    "useduuid": "89c830ae3"
                  }
                }
              },
              {
                "title": "LV010-W25QXXX简介",
                "url": "/sdoc/peripheral/spi/126b0950f64a0b5a3fbcba93.html",
                "frontmatter": {
                  "title": "LV010-W25QXXX简介",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/peripheral/spi/126b0950f64a0b5a3fbcba93",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "a3fbcba93d1642329a28cddcb65ad8e8",
                    "useduuid": "a3fbcba93"
                  }
                }
              },
              {
                "title": "LV015-SPI读写W25QXXX实例",
                "url": "/sdoc/peripheral/spi/126b0950f849211ff053e7ff.html",
                "frontmatter": {
                  "title": "LV015-SPI读写W25QXXX实例",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/peripheral/spi/126b0950f849211ff053e7ff",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "ff053e7ff3e247358beec3bab1ba61de",
                    "useduuid": "ff053e7ff"
                  }
                }
              }
            ],
            "frontmatter": {}
          },
          {
            "title": "40-DMA",
            "children": [
              {
                "title": "LV001-DMA简介",
                "url": "/sdoc/peripheral/dma/126b0950fbc52669af52caac.html",
                "frontmatter": {
                  "title": "LV001-DMA简介",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/peripheral/dma/126b0950fbc52669af52caac",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "9af52caac91c42b1b28d2e09c22f8d43",
                    "useduuid": "9af52caac"
                  }
                }
              },
              {
                "title": "LV010-DMA使用实例",
                "url": "/sdoc/peripheral/dma/126b0950fc960317c7b64826.html",
                "frontmatter": {
                  "title": "LV010-DMA使用实例",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/peripheral/dma/126b0950fc960317c7b64826",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "7c7b6482620b4698a5eac4b6e449f631",
                    "useduuid": "7c7b64826"
                  }
                }
              }
            ],
            "frontmatter": {}
          },
          {
            "title": "50-SDIO",
            "children": [
              {
                "title": "LV001-SD卡简介",
                "url": "/sdoc/peripheral/sdio/126b0950fe110bc81c4d2fd3.html",
                "frontmatter": {
                  "title": "LV001-SD卡简介",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/peripheral/sdio/126b0950fe110bc81c4d2fd3",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "81c4d2fd3b3049a1a63dd12e12b5a3fa",
                    "useduuid": "81c4d2fd3"
                  }
                }
              },
              {
                "title": "LV015-SD卡的操作",
                "url": "/sdoc/peripheral/sdio/126b0950ff013d660d235356.html",
                "frontmatter": {
                  "title": "LV015-SD卡的操作",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/peripheral/sdio/126b0950ff013d660d235356",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "60d235356a8a41c6b5be0b1b1d22ed03",
                    "useduuid": "60d235356"
                  }
                }
              },
              {
                "title": "LV020-STM32的SDIO",
                "url": "/sdoc/peripheral/sdio/126b0951000d2a75b964fa55.html",
                "frontmatter": {
                  "title": "LV020-STM32的SDIO",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/peripheral/sdio/126b0951000d2a75b964fa55",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "5b964fa55b1c49f2849632ac18e58758",
                    "useduuid": "5b964fa55"
                  }
                }
              },
              {
                "title": "LV025-读写SD卡实例",
                "url": "/sdoc/peripheral/sdio/126b095100d21af60c8ed17e.html",
                "frontmatter": {
                  "title": "LV025-读写SD卡实例",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/peripheral/sdio/126b095100d21af60c8ed17e",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "60c8ed17e9a9490aaf1efe2014ac5b67",
                    "useduuid": "60c8ed17e"
                  }
                }
              }
            ],
            "frontmatter": {}
          },
          {
            "title": "55-RTC时钟",
            "children": [
              {
                "title": "LV001-RTC简介",
                "url": "/sdoc/peripheral/rtc/126b09511eac35920a3f191c.html",
                "frontmatter": {
                  "title": "LV001-RTC简介",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/peripheral/rtc/126b09511eac35920a3f191c",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "20a3f191c6054d8d9f5fd53ff7b809de",
                    "useduuid": "20a3f191c"
                  }
                }
              }
            ],
            "frontmatter": {}
          },
          {
            "title": "60-USB",
            "children": [
              {
                "title": "LV001-USB简介",
                "url": "/sdoc/peripheral/usb/126b095167b12a8376012928.html",
                "frontmatter": {
                  "title": "LV001-USB简介",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/peripheral/usb/126b095167b12a8376012928",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "3760129282bc45c68e9217915df4f46b",
                    "useduuid": 376012928
                  }
                }
              },
              {
                "title": "LV010-USB读卡器实例",
                "url": "/sdoc/peripheral/usb/126b095168b91d9fad5c2a07.html",
                "frontmatter": {
                  "title": "LV010-USB读卡器实例",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/peripheral/usb/126b095168b91d9fad5c2a07",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "fad5c2a07ce14efe93e887b24a93fb47",
                    "useduuid": "fad5c2a07"
                  }
                }
              }
            ],
            "frontmatter": {}
          }
        ]
      },
      "sdoc/30-进阶篇/01-文件系统/index": {
        "url": "sdoc/advanced-chapter/file-system/126b095103f1237157cc07c6.html",
        "path": "sdoc/30-进阶篇/01-文件系统",
        "catalogues": [
          {
            "title": "LV001-文件系统简介",
            "url": "/sdoc/advanced-chapter/file-system/126b0951040033e78ccbca10.html",
            "frontmatter": {
              "title": "LV001-文件系统简介",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/advanced-chapter/file-system/126b0951040033e78ccbca10",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "78ccbca106d046ecaee2de5e4c1f5766",
                "useduuid": "78ccbca10"
              }
            }
          },
          {
            "title": "LV010-FATFS简介",
            "url": "/sdoc/advanced-chapter/file-system/126b095105912fc87e8eb3f7.html",
            "frontmatter": {
              "title": "LV010-FATFS简介",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/advanced-chapter/file-system/126b095105912fc87e8eb3f7",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "87e8eb3f76b14573a4c0856bf2257669",
                "useduuid": "87e8eb3f7"
              }
            }
          },
          {
            "title": "LV015-基于SPIFLASH移植FATFS",
            "url": "/sdoc/advanced-chapter/file-system/126b0951078a03391bda267a.html",
            "frontmatter": {
              "title": "LV015-基于SPIFLASH移植FATFS",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/advanced-chapter/file-system/126b0951078a03391bda267a",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "91bda267a4934867a0b05673bbc3ef13",
                "useduuid": "91bda267a"
              }
            }
          },
          {
            "title": "LV015-基于SD卡移植FATFS",
            "url": "/sdoc/advanced-chapter/file-system/126b09511b702501a47f120c.html",
            "frontmatter": {
              "title": "LV015-基于SD卡移植FATFS",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/advanced-chapter/file-system/126b09511b702501a47f120c",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "1a47f120cd8c41b6ab06d05da2ace352",
                "useduuid": "1a47f120c"
              }
            }
          },
          {
            "title": "LV025-FATFS中自定义的一些函数",
            "url": "/sdoc/advanced-chapter/file-system/126b09511d060b54b7d725e9.html",
            "frontmatter": {
              "title": "LV025-FATFS中自定义的一些函数",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/advanced-chapter/file-system/126b09511d060b54b7d725e9",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "4b7d725e9ba54c78945189a9341e3b34",
                "useduuid": "4b7d725e9"
              }
            }
          }
        ]
      },
      "sdoc/30-进阶篇/02-ESP8266/index": {
        "url": "sdoc/advanced-chapter/esp8266/126b0951501d17f37e2b0091.html",
        "path": "sdoc/30-进阶篇/02-ESP8266",
        "catalogues": [
          {
            "title": "LV001-ESP8266模块简介",
            "url": "/sdoc/advanced-chapter/esp8266/126b0951502d346ca9aa7929.html",
            "frontmatter": {
              "title": "LV001-ESP8266模块简介",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/advanced-chapter/esp8266/126b0951502d346ca9aa7929",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "ca9aa79298244701abe40ba6e8a3afb0",
                "useduuid": "ca9aa7929"
              }
            }
          },
          {
            "title": "LV010-AT指令",
            "url": "/sdoc/advanced-chapter/esp8266/126b095151472d621a6605a9.html",
            "frontmatter": {
              "title": "LV010-AT指令",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/advanced-chapter/esp8266/126b095151472d621a6605a9",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "21a6605a91b34e7b87e3081f66267021",
                "useduuid": "21a6605a9"
              }
            }
          },
          {
            "title": "LV015-ESP8266固件烧录",
            "url": "/sdoc/advanced-chapter/esp8266/126b0951520814de18399844.html",
            "frontmatter": {
              "title": "LV015-ESP8266固件烧录",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/advanced-chapter/esp8266/126b0951520814de18399844",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "e18399844bf344e3bb81cdc33db73395",
                "useduuid": "e18399844"
              }
            }
          },
          {
            "title": "LV020-ATK-ESP8266使用实例",
            "url": "/sdoc/advanced-chapter/esp8266/126b095152fb04ead8380cb5.html",
            "frontmatter": {
              "title": "LV020-ATK-ESP8266使用实例",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/advanced-chapter/esp8266/126b095152fb04ead8380cb5",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "ad8380cb587c446592ab6fa1ae7318fd",
                "useduuid": "ad8380cb5"
              }
            }
          }
        ]
      },
      "sdoc/30-进阶篇/03-OV7725/index": {
        "url": "sdoc/advanced-chapter/ov7725/126b09516acd106d46ca7dbf.html",
        "path": "sdoc/30-进阶篇/03-OV7725",
        "catalogues": [
          {
            "title": "LV001-ATK-MC6625F模块简介",
            "url": "/sdoc/advanced-chapter/ov7725/126b09516b08191a7bd0fd02.html",
            "frontmatter": {
              "title": "LV001-ATK-MC6625F模块简介",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/advanced-chapter/ov7725/126b09516b08191a7bd0fd02",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "a7bd0fd0290345cfae6ad4ff74f043f7",
                "useduuid": "a7bd0fd02"
              }
            }
          },
          {
            "title": "LV010-SCCB协议简介",
            "url": "/sdoc/advanced-chapter/ov7725/126b09516b6c2fed98855250.html",
            "frontmatter": {
              "title": "LV010-SCCB协议简介",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/advanced-chapter/ov7725/126b09516b6c2fed98855250",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "d9885525026649bdb9a31be28b79a722",
                "useduuid": "d98855250"
              }
            }
          },
          {
            "title": "LV020-OV7725简介",
            "url": "/sdoc/advanced-chapter/ov7725/126b09516bd03c413cd356e8.html",
            "frontmatter": {
              "title": "LV020-OV7725简介",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/advanced-chapter/ov7725/126b09516bd03c413cd356e8",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "13cd356e84f447f3b52ee1a287368dce",
                "useduuid": "13cd356e8"
              }
            }
          }
        ]
      },
      "sdoc/30-进阶篇/04-显示屏/01-OLED/index": {
        "url": "sdoc/advanced-chapter/display/oled/126b09516d232f134becda6b.html",
        "path": "sdoc/30-进阶篇/04-显示屏/01-OLED",
        "catalogues": [
          {
            "title": "LV001-OLED简介",
            "url": "/sdoc/advanced-chapter/display/oled/126b09516d6c2a948085516b.html",
            "frontmatter": {
              "title": "LV001-OLED简介",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/advanced-chapter/display/oled/126b09516d6c2a948085516b",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "48085516b89044b2a637057cfaac3f5c",
                "useduuid": "48085516b"
              }
            }
          },
          {
            "title": "LV010-8080时序驱动OLED",
            "url": "/sdoc/advanced-chapter/display/oled/126b09517279099247b327e5.html",
            "frontmatter": {
              "title": "LV010-8080时序驱动OLED",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/advanced-chapter/display/oled/126b09517279099247b327e5",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "247b327e5f1747919749deb8038e066d",
                "useduuid": "247b327e5"
              }
            }
          }
        ]
      },
      "sdoc/30-进阶篇/04-显示屏/02-LCD/index": {
        "url": "sdoc/advanced-chapter/display/lcd/126b09516d2f200db818e12a.html",
        "path": "sdoc/30-进阶篇/04-显示屏/02-LCD",
        "catalogues": [
          {
            "title": "LV001-LCD简介",
            "url": "/sdoc/advanced-chapter/display/lcd/126b0951740b3b3a3f69973e.html",
            "frontmatter": {
              "title": "LV001-LCD简介",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/advanced-chapter/display/lcd/126b0951740b3b3a3f69973e",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "a3f69973ef4142428240aba5719aeeb0",
                "useduuid": "a3f69973e"
              }
            }
          },
          {
            "title": "LV010-液晶控制原理",
            "url": "/sdoc/advanced-chapter/display/lcd/126b0951760b03320ea5c5be.html",
            "frontmatter": {
              "title": "LV010-液晶控制原理",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/advanced-chapter/display/lcd/126b0951760b03320ea5c5be",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "20ea5c5be93445288eac3b57c2e84f66",
                "useduuid": "20ea5c5be"
              }
            }
          },
          {
            "title": "LV015-ATK-MD0280模块",
            "url": "/sdoc/advanced-chapter/display/lcd/126b095237661ce983ad47b1.html",
            "frontmatter": {
              "title": "LV015-ATK-MD0280模块",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/advanced-chapter/display/lcd/126b095237661ce983ad47b1",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "983ad47b1ccb49c59396418e90556b0c",
                "useduuid": "983ad47b1"
              }
            }
          },
          {
            "title": "LV016-IL9341简介",
            "url": "/sdoc/advanced-chapter/display/lcd/126b095238ef12080fa9e2fc.html",
            "frontmatter": {
              "title": "LV016-IL9341简介",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/advanced-chapter/display/lcd/126b095238ef12080fa9e2fc",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "80fa9e2fc1c846ac9bfafe695ffc6b7d",
                "useduuid": "80fa9e2fc"
              }
            }
          },
          {
            "title": "LV020-FSMC模拟8080时序",
            "url": "/sdoc/advanced-chapter/display/lcd/126b09523c371707f0bd772f.html",
            "frontmatter": {
              "title": "LV020-FSMC模拟8080时序",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/advanced-chapter/display/lcd/126b09523c371707f0bd772f",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "7f0bd772fcbd424ab2f5aaf94abf65ff",
                "useduuid": "7f0bd772f"
              }
            }
          },
          {
            "title": "LV025-LCD显示实例",
            "url": "/sdoc/advanced-chapter/display/lcd/126b095253d9037570d31d42.html",
            "frontmatter": {
              "title": "LV025-LCD显示实例",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/advanced-chapter/display/lcd/126b095253d9037570d31d42",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "570d31d42d894e208a1fb9d5c484e257",
                "useduuid": "570d31d42"
              }
            }
          },
          {
            "title": "LV030-字符编码基础",
            "url": "/sdoc/advanced-chapter/display/lcd/126b095255800a53f67e99cc.html",
            "frontmatter": {
              "title": "LV030-字符编码基础",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/advanced-chapter/display/lcd/126b095255800a53f67e99cc",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "3f67e99cc1774328be76eff3ae429948",
                "useduuid": "3f67e99cc"
              }
            }
          },
          {
            "title": "LV035-中英文的显示",
            "url": "/sdoc/advanced-chapter/display/lcd/126b0952576b3df0941e36ed.html",
            "frontmatter": {
              "title": "LV035-中英文的显示",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/advanced-chapter/display/lcd/126b0952576b3df0941e36ed",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "0941e36ed35b4da7a71acace5c8d2e0d",
                "useduuid": "0941e36ed"
              }
            }
          },
          {
            "title": "LV040-实现任意大小字模",
            "url": "/sdoc/advanced-chapter/display/lcd/126b09525e7116330989fbcc.html",
            "frontmatter": {
              "title": "LV040-实现任意大小字模",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/advanced-chapter/display/lcd/126b09525e7116330989fbcc",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "30989fbcc8354f6baad6455294de0120",
                "useduuid": "30989fbcc"
              }
            }
          }
        ]
      },
      "sdoc/30-进阶篇/04-显示屏/index": {
        "url": "sdoc/advanced-chapter/display/126b09516d1d204fc8501804.html",
        "path": "sdoc/30-进阶篇/04-显示屏",
        "catalogues": [
          {
            "title": "01-OLED",
            "children": [
              {
                "title": "LV001-OLED简介",
                "url": "/sdoc/advanced-chapter/display/oled/126b09516d6c2a948085516b.html",
                "frontmatter": {
                  "title": "LV001-OLED简介",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/advanced-chapter/display/oled/126b09516d6c2a948085516b",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "48085516b89044b2a637057cfaac3f5c",
                    "useduuid": "48085516b"
                  }
                }
              },
              {
                "title": "LV010-8080时序驱动OLED",
                "url": "/sdoc/advanced-chapter/display/oled/126b09517279099247b327e5.html",
                "frontmatter": {
                  "title": "LV010-8080时序驱动OLED",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/advanced-chapter/display/oled/126b09517279099247b327e5",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "247b327e5f1747919749deb8038e066d",
                    "useduuid": "247b327e5"
                  }
                }
              }
            ],
            "frontmatter": {}
          },
          {
            "title": "02-LCD",
            "children": [
              {
                "title": "LV001-LCD简介",
                "url": "/sdoc/advanced-chapter/display/lcd/126b0951740b3b3a3f69973e.html",
                "frontmatter": {
                  "title": "LV001-LCD简介",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/advanced-chapter/display/lcd/126b0951740b3b3a3f69973e",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "a3f69973ef4142428240aba5719aeeb0",
                    "useduuid": "a3f69973e"
                  }
                }
              },
              {
                "title": "LV010-液晶控制原理",
                "url": "/sdoc/advanced-chapter/display/lcd/126b0951760b03320ea5c5be.html",
                "frontmatter": {
                  "title": "LV010-液晶控制原理",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/advanced-chapter/display/lcd/126b0951760b03320ea5c5be",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "20ea5c5be93445288eac3b57c2e84f66",
                    "useduuid": "20ea5c5be"
                  }
                }
              },
              {
                "title": "LV015-ATK-MD0280模块",
                "url": "/sdoc/advanced-chapter/display/lcd/126b095237661ce983ad47b1.html",
                "frontmatter": {
                  "title": "LV015-ATK-MD0280模块",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/advanced-chapter/display/lcd/126b095237661ce983ad47b1",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "983ad47b1ccb49c59396418e90556b0c",
                    "useduuid": "983ad47b1"
                  }
                }
              },
              {
                "title": "LV016-IL9341简介",
                "url": "/sdoc/advanced-chapter/display/lcd/126b095238ef12080fa9e2fc.html",
                "frontmatter": {
                  "title": "LV016-IL9341简介",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/advanced-chapter/display/lcd/126b095238ef12080fa9e2fc",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "80fa9e2fc1c846ac9bfafe695ffc6b7d",
                    "useduuid": "80fa9e2fc"
                  }
                }
              },
              {
                "title": "LV020-FSMC模拟8080时序",
                "url": "/sdoc/advanced-chapter/display/lcd/126b09523c371707f0bd772f.html",
                "frontmatter": {
                  "title": "LV020-FSMC模拟8080时序",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/advanced-chapter/display/lcd/126b09523c371707f0bd772f",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "7f0bd772fcbd424ab2f5aaf94abf65ff",
                    "useduuid": "7f0bd772f"
                  }
                }
              },
              {
                "title": "LV025-LCD显示实例",
                "url": "/sdoc/advanced-chapter/display/lcd/126b095253d9037570d31d42.html",
                "frontmatter": {
                  "title": "LV025-LCD显示实例",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/advanced-chapter/display/lcd/126b095253d9037570d31d42",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "570d31d42d894e208a1fb9d5c484e257",
                    "useduuid": "570d31d42"
                  }
                }
              },
              {
                "title": "LV030-字符编码基础",
                "url": "/sdoc/advanced-chapter/display/lcd/126b095255800a53f67e99cc.html",
                "frontmatter": {
                  "title": "LV030-字符编码基础",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/advanced-chapter/display/lcd/126b095255800a53f67e99cc",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "3f67e99cc1774328be76eff3ae429948",
                    "useduuid": "3f67e99cc"
                  }
                }
              },
              {
                "title": "LV035-中英文的显示",
                "url": "/sdoc/advanced-chapter/display/lcd/126b0952576b3df0941e36ed.html",
                "frontmatter": {
                  "title": "LV035-中英文的显示",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/advanced-chapter/display/lcd/126b0952576b3df0941e36ed",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "0941e36ed35b4da7a71acace5c8d2e0d",
                    "useduuid": "0941e36ed"
                  }
                }
              },
              {
                "title": "LV040-实现任意大小字模",
                "url": "/sdoc/advanced-chapter/display/lcd/126b09525e7116330989fbcc.html",
                "frontmatter": {
                  "title": "LV040-实现任意大小字模",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/advanced-chapter/display/lcd/126b09525e7116330989fbcc",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "30989fbcc8354f6baad6455294de0120",
                    "useduuid": "30989fbcc"
                  }
                }
              }
            ],
            "frontmatter": {}
          }
        ]
      },
      "sdoc/30-进阶篇/90-FreeRTOS/01-FreeRTOS简介/index": {
        "url": "docs/126b096ee4bd15f7d94c92d0.html",
        "path": "sdoc/30-进阶篇/90-FreeRTOS/01-FreeRTOS简介",
        "catalogues": [
          {
            "title": "LV001-FreeRTOS简介",
            "url": "/docs/126b096ee4d10f3bb564b607.html",
            "frontmatter": {
              "title": "LV001-FreeRTOS简介",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/docs/126b096ee4d10f3bb564b607",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "bb564b607089439882d4247b57282de9",
                "useduuid": "bb564b607"
              }
            }
          }
        ]
      },
      "sdoc/30-进阶篇/90-FreeRTOS/index": {
        "url": "docs/126b096ee490286163a5b271.html",
        "path": "sdoc/30-进阶篇/90-FreeRTOS",
        "catalogues": [
          {
            "title": "01-FreeRTOS简介",
            "children": [
              {
                "title": "LV001-FreeRTOS简介",
                "url": "/docs/126b096ee4d10f3bb564b607.html",
                "frontmatter": {
                  "title": "LV001-FreeRTOS简介",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/docs/126b096ee4d10f3bb564b607",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "bb564b607089439882d4247b57282de9",
                    "useduuid": "bb564b607"
                  }
                }
              }
            ],
            "frontmatter": {}
          }
        ]
      },
      "sdoc/30-进阶篇/index": {
        "url": "sdoc/advanced-chapter/126b095103e933d0da8853e8.html",
        "path": "sdoc/30-进阶篇",
        "catalogues": [
          {
            "title": "01-文件系统",
            "children": [
              {
                "title": "LV001-文件系统简介",
                "url": "/sdoc/advanced-chapter/file-system/126b0951040033e78ccbca10.html",
                "frontmatter": {
                  "title": "LV001-文件系统简介",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/advanced-chapter/file-system/126b0951040033e78ccbca10",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "78ccbca106d046ecaee2de5e4c1f5766",
                    "useduuid": "78ccbca10"
                  }
                }
              },
              {
                "title": "LV010-FATFS简介",
                "url": "/sdoc/advanced-chapter/file-system/126b095105912fc87e8eb3f7.html",
                "frontmatter": {
                  "title": "LV010-FATFS简介",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/advanced-chapter/file-system/126b095105912fc87e8eb3f7",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "87e8eb3f76b14573a4c0856bf2257669",
                    "useduuid": "87e8eb3f7"
                  }
                }
              },
              {
                "title": "LV015-基于SPIFLASH移植FATFS",
                "url": "/sdoc/advanced-chapter/file-system/126b0951078a03391bda267a.html",
                "frontmatter": {
                  "title": "LV015-基于SPIFLASH移植FATFS",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/advanced-chapter/file-system/126b0951078a03391bda267a",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "91bda267a4934867a0b05673bbc3ef13",
                    "useduuid": "91bda267a"
                  }
                }
              },
              {
                "title": "LV015-基于SD卡移植FATFS",
                "url": "/sdoc/advanced-chapter/file-system/126b09511b702501a47f120c.html",
                "frontmatter": {
                  "title": "LV015-基于SD卡移植FATFS",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/advanced-chapter/file-system/126b09511b702501a47f120c",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "1a47f120cd8c41b6ab06d05da2ace352",
                    "useduuid": "1a47f120c"
                  }
                }
              },
              {
                "title": "LV025-FATFS中自定义的一些函数",
                "url": "/sdoc/advanced-chapter/file-system/126b09511d060b54b7d725e9.html",
                "frontmatter": {
                  "title": "LV025-FATFS中自定义的一些函数",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/advanced-chapter/file-system/126b09511d060b54b7d725e9",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "4b7d725e9ba54c78945189a9341e3b34",
                    "useduuid": "4b7d725e9"
                  }
                }
              }
            ],
            "frontmatter": {}
          },
          {
            "title": "02-ESP8266",
            "children": [
              {
                "title": "LV001-ESP8266模块简介",
                "url": "/sdoc/advanced-chapter/esp8266/126b0951502d346ca9aa7929.html",
                "frontmatter": {
                  "title": "LV001-ESP8266模块简介",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/advanced-chapter/esp8266/126b0951502d346ca9aa7929",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "ca9aa79298244701abe40ba6e8a3afb0",
                    "useduuid": "ca9aa7929"
                  }
                }
              },
              {
                "title": "LV010-AT指令",
                "url": "/sdoc/advanced-chapter/esp8266/126b095151472d621a6605a9.html",
                "frontmatter": {
                  "title": "LV010-AT指令",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/advanced-chapter/esp8266/126b095151472d621a6605a9",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "21a6605a91b34e7b87e3081f66267021",
                    "useduuid": "21a6605a9"
                  }
                }
              },
              {
                "title": "LV015-ESP8266固件烧录",
                "url": "/sdoc/advanced-chapter/esp8266/126b0951520814de18399844.html",
                "frontmatter": {
                  "title": "LV015-ESP8266固件烧录",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/advanced-chapter/esp8266/126b0951520814de18399844",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "e18399844bf344e3bb81cdc33db73395",
                    "useduuid": "e18399844"
                  }
                }
              },
              {
                "title": "LV020-ATK-ESP8266使用实例",
                "url": "/sdoc/advanced-chapter/esp8266/126b095152fb04ead8380cb5.html",
                "frontmatter": {
                  "title": "LV020-ATK-ESP8266使用实例",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/advanced-chapter/esp8266/126b095152fb04ead8380cb5",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "ad8380cb587c446592ab6fa1ae7318fd",
                    "useduuid": "ad8380cb5"
                  }
                }
              }
            ],
            "frontmatter": {}
          },
          {
            "title": "03-OV7725",
            "children": [
              {
                "title": "LV001-ATK-MC6625F模块简介",
                "url": "/sdoc/advanced-chapter/ov7725/126b09516b08191a7bd0fd02.html",
                "frontmatter": {
                  "title": "LV001-ATK-MC6625F模块简介",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/advanced-chapter/ov7725/126b09516b08191a7bd0fd02",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "a7bd0fd0290345cfae6ad4ff74f043f7",
                    "useduuid": "a7bd0fd02"
                  }
                }
              },
              {
                "title": "LV010-SCCB协议简介",
                "url": "/sdoc/advanced-chapter/ov7725/126b09516b6c2fed98855250.html",
                "frontmatter": {
                  "title": "LV010-SCCB协议简介",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/advanced-chapter/ov7725/126b09516b6c2fed98855250",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "d9885525026649bdb9a31be28b79a722",
                    "useduuid": "d98855250"
                  }
                }
              },
              {
                "title": "LV020-OV7725简介",
                "url": "/sdoc/advanced-chapter/ov7725/126b09516bd03c413cd356e8.html",
                "frontmatter": {
                  "title": "LV020-OV7725简介",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/advanced-chapter/ov7725/126b09516bd03c413cd356e8",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "13cd356e84f447f3b52ee1a287368dce",
                    "useduuid": "13cd356e8"
                  }
                }
              }
            ],
            "frontmatter": {}
          },
          {
            "title": "04-显示屏",
            "children": [
              {
                "title": "01-OLED",
                "children": [
                  {
                    "title": "LV001-OLED简介",
                    "url": "/sdoc/advanced-chapter/display/oled/126b09516d6c2a948085516b.html",
                    "frontmatter": {
                      "title": "LV001-OLED简介",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/advanced-chapter/display/oled/126b09516d6c2a948085516b",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "48085516b89044b2a637057cfaac3f5c",
                        "useduuid": "48085516b"
                      }
                    }
                  },
                  {
                    "title": "LV010-8080时序驱动OLED",
                    "url": "/sdoc/advanced-chapter/display/oled/126b09517279099247b327e5.html",
                    "frontmatter": {
                      "title": "LV010-8080时序驱动OLED",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/advanced-chapter/display/oled/126b09517279099247b327e5",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "247b327e5f1747919749deb8038e066d",
                        "useduuid": "247b327e5"
                      }
                    }
                  }
                ],
                "frontmatter": {}
              },
              {
                "title": "02-LCD",
                "children": [
                  {
                    "title": "LV001-LCD简介",
                    "url": "/sdoc/advanced-chapter/display/lcd/126b0951740b3b3a3f69973e.html",
                    "frontmatter": {
                      "title": "LV001-LCD简介",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/advanced-chapter/display/lcd/126b0951740b3b3a3f69973e",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "a3f69973ef4142428240aba5719aeeb0",
                        "useduuid": "a3f69973e"
                      }
                    }
                  },
                  {
                    "title": "LV010-液晶控制原理",
                    "url": "/sdoc/advanced-chapter/display/lcd/126b0951760b03320ea5c5be.html",
                    "frontmatter": {
                      "title": "LV010-液晶控制原理",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/advanced-chapter/display/lcd/126b0951760b03320ea5c5be",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "20ea5c5be93445288eac3b57c2e84f66",
                        "useduuid": "20ea5c5be"
                      }
                    }
                  },
                  {
                    "title": "LV015-ATK-MD0280模块",
                    "url": "/sdoc/advanced-chapter/display/lcd/126b095237661ce983ad47b1.html",
                    "frontmatter": {
                      "title": "LV015-ATK-MD0280模块",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/advanced-chapter/display/lcd/126b095237661ce983ad47b1",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "983ad47b1ccb49c59396418e90556b0c",
                        "useduuid": "983ad47b1"
                      }
                    }
                  },
                  {
                    "title": "LV016-IL9341简介",
                    "url": "/sdoc/advanced-chapter/display/lcd/126b095238ef12080fa9e2fc.html",
                    "frontmatter": {
                      "title": "LV016-IL9341简介",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/advanced-chapter/display/lcd/126b095238ef12080fa9e2fc",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "80fa9e2fc1c846ac9bfafe695ffc6b7d",
                        "useduuid": "80fa9e2fc"
                      }
                    }
                  },
                  {
                    "title": "LV020-FSMC模拟8080时序",
                    "url": "/sdoc/advanced-chapter/display/lcd/126b09523c371707f0bd772f.html",
                    "frontmatter": {
                      "title": "LV020-FSMC模拟8080时序",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/advanced-chapter/display/lcd/126b09523c371707f0bd772f",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "7f0bd772fcbd424ab2f5aaf94abf65ff",
                        "useduuid": "7f0bd772f"
                      }
                    }
                  },
                  {
                    "title": "LV025-LCD显示实例",
                    "url": "/sdoc/advanced-chapter/display/lcd/126b095253d9037570d31d42.html",
                    "frontmatter": {
                      "title": "LV025-LCD显示实例",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/advanced-chapter/display/lcd/126b095253d9037570d31d42",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "570d31d42d894e208a1fb9d5c484e257",
                        "useduuid": "570d31d42"
                      }
                    }
                  },
                  {
                    "title": "LV030-字符编码基础",
                    "url": "/sdoc/advanced-chapter/display/lcd/126b095255800a53f67e99cc.html",
                    "frontmatter": {
                      "title": "LV030-字符编码基础",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/advanced-chapter/display/lcd/126b095255800a53f67e99cc",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "3f67e99cc1774328be76eff3ae429948",
                        "useduuid": "3f67e99cc"
                      }
                    }
                  },
                  {
                    "title": "LV035-中英文的显示",
                    "url": "/sdoc/advanced-chapter/display/lcd/126b0952576b3df0941e36ed.html",
                    "frontmatter": {
                      "title": "LV035-中英文的显示",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/advanced-chapter/display/lcd/126b0952576b3df0941e36ed",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "0941e36ed35b4da7a71acace5c8d2e0d",
                        "useduuid": "0941e36ed"
                      }
                    }
                  },
                  {
                    "title": "LV040-实现任意大小字模",
                    "url": "/sdoc/advanced-chapter/display/lcd/126b09525e7116330989fbcc.html",
                    "frontmatter": {
                      "title": "LV040-实现任意大小字模",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/advanced-chapter/display/lcd/126b09525e7116330989fbcc",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "30989fbcc8354f6baad6455294de0120",
                        "useduuid": "30989fbcc"
                      }
                    }
                  }
                ],
                "frontmatter": {}
              }
            ],
            "frontmatter": {}
          },
          {
            "title": "90-FreeRTOS",
            "children": [
              {
                "title": "01-FreeRTOS简介",
                "children": [
                  {
                    "title": "LV001-FreeRTOS简介",
                    "url": "/docs/126b096ee4d10f3bb564b607.html",
                    "frontmatter": {
                      "title": "LV001-FreeRTOS简介",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/docs/126b096ee4d10f3bb564b607",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "bb564b607089439882d4247b57282de9",
                        "useduuid": "bb564b607"
                      }
                    }
                  }
                ],
                "frontmatter": {}
              }
            ],
            "frontmatter": {}
          }
        ]
      },
      "sdoc/60-通信专题/01-I2C协议/index": {
        "url": "sdoc/communication/i2c/126b09043eec0234d430a608.html",
        "path": "sdoc/60-通信专题/01-I2C协议",
        "catalogues": [
          {
            "title": "LV001-I2C简介",
            "url": "/sdoc/communication/i2c/126b09043f2d250b963bfb0d.html",
            "frontmatter": {
              "title": "LV001-I2C简介",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/communication/i2c/126b09043f2d250b963bfb0d",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "b963bfb0deb74fcaa8f060b7b084d3d8",
                "useduuid": "b963bfb0d"
              }
            }
          },
          {
            "title": "LV020-AT24C02实例分析",
            "url": "/sdoc/communication/i2c/126b09043fca31869028172d.html",
            "frontmatter": {
              "title": "LV020-AT24C02实例分析",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/communication/i2c/126b09043fca31869028172d",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "69028172daa144dcbab34851329c3348",
                "useduuid": "69028172d"
              }
            }
          }
        ]
      },
      "sdoc/60-通信专题/10-串口/index": {
        "url": "sdoc/communication/serial-port/126b09044209398a673e2151.html",
        "path": "sdoc/60-通信专题/10-串口",
        "catalogues": [
          {
            "title": "LV001-串口通信简介",
            "url": "/sdoc/communication/serial-port/126b0904421d06db7b197798.html",
            "frontmatter": {
              "title": "LV001-串口通信简介",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/communication/serial-port/126b0904421d06db7b197798",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "b7b197798fd74f3fb97abd23e12eb7bc",
                "useduuid": "b7b197798"
              }
            }
          },
          {
            "title": "LV020-RS232简介",
            "url": "/sdoc/communication/serial-port/126b0950f26b1afbd6db3885.html",
            "frontmatter": {
              "title": "LV020-RS232简介",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/communication/serial-port/126b0950f26b1afbd6db3885",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "bd6db38856214d8db0d0697d94245e7d",
                "useduuid": "bd6db3885"
              }
            }
          },
          {
            "title": "LV030-RS485简介",
            "url": "/sdoc/communication/serial-port/126b0950f287303e7c68cbb5.html",
            "frontmatter": {
              "title": "LV030-RS485简介",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/communication/serial-port/126b0950f287303e7c68cbb5",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "e7c68cbb501d41a4be750e720e3a5e0a",
                "useduuid": "e7c68cbb5"
              }
            }
          }
        ]
      },
      "sdoc/60-通信专题/30-SPI/index": {
        "url": "sdoc/communication/spi/126b0950dce32a071f087087.html",
        "path": "sdoc/60-通信专题/30-SPI",
        "catalogues": [
          {
            "title": "LV001-SPI简介",
            "url": "/sdoc/communication/spi/126b0950dceb1d850b1e36d8.html",
            "frontmatter": {
              "title": "LV001-SPI简介",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/communication/spi/126b0950dceb1d850b1e36d8",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "50b1e36d86eb4c0e85c11fe350fcd877",
                "useduuid": "50b1e36d8"
              }
            }
          }
        ]
      },
      "sdoc/60-通信专题/40-CAN/index": {
        "url": "sdoc/communication/can/126b0950f33c30cca3fe3d80.html",
        "path": "sdoc/60-通信专题/40-CAN",
        "catalogues": [
          {
            "title": "LV001-CAN通信简介",
            "url": "/sdoc/communication/can/126b0950f34624bdf8f7407f.html",
            "frontmatter": {
              "title": "LV001-CAN通信简介",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/communication/can/126b0950f34624bdf8f7407f",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "df8f7407fc324becb0237697f4ea8f9c",
                "useduuid": "df8f7407f"
              }
            }
          }
        ]
      },
      "sdoc/60-通信专题/index": {
        "url": "sdoc/communication/126b09043d6f181654856443.html",
        "path": "sdoc/60-通信专题",
        "catalogues": [
          {
            "title": "01-I2C协议",
            "children": [
              {
                "title": "LV001-I2C简介",
                "url": "/sdoc/communication/i2c/126b09043f2d250b963bfb0d.html",
                "frontmatter": {
                  "title": "LV001-I2C简介",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/communication/i2c/126b09043f2d250b963bfb0d",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "b963bfb0deb74fcaa8f060b7b084d3d8",
                    "useduuid": "b963bfb0d"
                  }
                }
              },
              {
                "title": "LV020-AT24C02实例分析",
                "url": "/sdoc/communication/i2c/126b09043fca31869028172d.html",
                "frontmatter": {
                  "title": "LV020-AT24C02实例分析",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/communication/i2c/126b09043fca31869028172d",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "69028172daa144dcbab34851329c3348",
                    "useduuid": "69028172d"
                  }
                }
              }
            ],
            "frontmatter": {}
          },
          {
            "title": "10-串口",
            "children": [
              {
                "title": "LV001-串口通信简介",
                "url": "/sdoc/communication/serial-port/126b0904421d06db7b197798.html",
                "frontmatter": {
                  "title": "LV001-串口通信简介",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/communication/serial-port/126b0904421d06db7b197798",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "b7b197798fd74f3fb97abd23e12eb7bc",
                    "useduuid": "b7b197798"
                  }
                }
              },
              {
                "title": "LV020-RS232简介",
                "url": "/sdoc/communication/serial-port/126b0950f26b1afbd6db3885.html",
                "frontmatter": {
                  "title": "LV020-RS232简介",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/communication/serial-port/126b0950f26b1afbd6db3885",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "bd6db38856214d8db0d0697d94245e7d",
                    "useduuid": "bd6db3885"
                  }
                }
              },
              {
                "title": "LV030-RS485简介",
                "url": "/sdoc/communication/serial-port/126b0950f287303e7c68cbb5.html",
                "frontmatter": {
                  "title": "LV030-RS485简介",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/communication/serial-port/126b0950f287303e7c68cbb5",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "e7c68cbb501d41a4be750e720e3a5e0a",
                    "useduuid": "e7c68cbb5"
                  }
                }
              }
            ],
            "frontmatter": {}
          },
          {
            "title": "30-SPI",
            "children": [
              {
                "title": "LV001-SPI简介",
                "url": "/sdoc/communication/spi/126b0950dceb1d850b1e36d8.html",
                "frontmatter": {
                  "title": "LV001-SPI简介",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/communication/spi/126b0950dceb1d850b1e36d8",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "50b1e36d86eb4c0e85c11fe350fcd877",
                    "useduuid": "50b1e36d8"
                  }
                }
              }
            ],
            "frontmatter": {}
          },
          {
            "title": "40-CAN",
            "children": [
              {
                "title": "LV001-CAN通信简介",
                "url": "/sdoc/communication/can/126b0950f34624bdf8f7407f.html",
                "frontmatter": {
                  "title": "LV001-CAN通信简介",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/communication/can/126b0950f34624bdf8f7407f",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "df8f7407fc324becb0237697f4ea8f9c",
                    "useduuid": "df8f7407f"
                  }
                }
              }
            ],
            "frontmatter": {}
          },
          {
            "title": "LV001-通信概述",
            "url": "/sdoc/communication/126b09043e1c12685fda3fb8.html",
            "frontmatter": {
              "title": "LV001-通信概述",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/communication/126b09043e1c12685fda3fb8",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "85fda3fb8df54e90807dd03d5831b5bf",
                "useduuid": "85fda3fb8"
              }
            }
          }
        ]
      },
      "sdoc/index": {
        "url": "sdoc/126b08a8af2414bbd46eede1.html",
        "path": "sdoc",
        "catalogues": [
          {
            "title": "01-开发工具",
            "children": [
              {
                "title": "01-keil",
                "children": [
                  {
                    "title": "LV001-keil简介",
                    "url": "/sdoc/dev-tool/keil/126b08a8b79e2ecaa634dd81.html",
                    "frontmatter": {
                      "title": "LV001-keil简介",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/dev-tool/keil/126b08a8b79e2ecaa634dd81",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "aa634dd813594b2686f1ae7b5b6911d4",
                        "useduuid": "aa634dd81"
                      }
                    }
                  },
                  {
                    "title": "LV002-工程创建",
                    "url": "/sdoc/dev-tool/keil/126b08aa5e32382c0ab32a01.html",
                    "frontmatter": {
                      "title": "LV002-工程创建",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/dev-tool/keil/126b08aa5e32382c0ab32a01",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "c0ab32a01a744756b6c0c3e4231ed9aa",
                        "useduuid": "c0ab32a01"
                      }
                    }
                  },
                  {
                    "title": "LV010-程序与编译",
                    "url": "/sdoc/dev-tool/keil/126b08e6a9c4187125e57a5f.html",
                    "frontmatter": {
                      "title": "LV010-程序与编译",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/dev-tool/keil/126b08e6a9c4187125e57a5f",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "125e57a5ff854ebaa58b6fff51b99a11",
                        "useduuid": "125e57a5f"
                      }
                    }
                  },
                  {
                    "title": "LV015-MDK工程文件简介",
                    "url": "/sdoc/dev-tool/keil/126b0913857d3670d6f0eef1.html",
                    "frontmatter": {
                      "title": "LV015-MDK工程文件简介",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/dev-tool/keil/126b0913857d3670d6f0eef1",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "0d6f0eef153042fc862dc752cb0e3c2d",
                        "useduuid": "0d6f0eef1"
                      }
                    }
                  },
                  {
                    "title": "LV016-Output目录文件",
                    "url": "/sdoc/dev-tool/keil/126b091384f9220a0ff9cf1d.html",
                    "frontmatter": {
                      "title": "LV016-Output目录文件",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/dev-tool/keil/126b091384f9220a0ff9cf1d",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "a0ff9cf1dff34a1790997424e34bac30",
                        "useduuid": "a0ff9cf1d"
                      }
                    }
                  },
                  {
                    "title": "LV017-Listing目录文件",
                    "url": "/sdoc/dev-tool/keil/126b0913865605b5493dc70e.html",
                    "frontmatter": {
                      "title": "LV017-Listing目录文件",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/dev-tool/keil/126b0913865605b5493dc70e",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "5493dc70ee6849e0b32a91f39d8e2488",
                        "useduuid": "5493dc70e"
                      }
                    }
                  },
                  {
                    "title": "LV020-SCT分散加载文件",
                    "url": "/sdoc/dev-tool/keil/126b08e6cfb5032dbc05b46a.html",
                    "frontmatter": {
                      "title": "LV020-SCT分散加载文件",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/dev-tool/keil/126b08e6cfb5032dbc05b46a",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "dbc05b46abca47d8a176762f5148dc50",
                        "useduuid": "dbc05b46a"
                      }
                    }
                  },
                  {
                    "title": "LV025-SCT文件应用",
                    "url": "/sdoc/dev-tool/keil/126b08e6d335070a7fd1934d.html",
                    "frontmatter": {
                      "title": "LV025-SCT文件应用",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/dev-tool/keil/126b08e6d335070a7fd1934d",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "a7fd1934dbcb4eef93f57d3dce4e0059",
                        "useduuid": "a7fd1934d"
                      }
                    }
                  },
                  {
                    "title": "LV040-在线调试",
                    "url": "/sdoc/dev-tool/keil/126b08e76d70287e70afead6.html",
                    "frontmatter": {
                      "title": "LV040-在线调试",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/dev-tool/keil/126b08e76d70287e70afead6",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "e70afead6dd14692ad3b3749eb2cad4d",
                        "useduuid": "e70afead6"
                      }
                    }
                  }
                ],
                "frontmatter": {}
              },
              {
                "title": "02-STM32Cube",
                "children": [
                  {
                    "title": "LV001-STM32CubeMX简介",
                    "url": "/sdoc/dev-tool/stm32cube/126b08aa58bc0838d250f7bd.html",
                    "frontmatter": {
                      "title": "LV001-STM32CubeMX简介",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/dev-tool/stm32cube/126b08aa58bc0838d250f7bd",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "8d250f7bdb9d4b4fb822b135635cdf20",
                        "useduuid": "8d250f7bd"
                      }
                    }
                  },
                  {
                    "title": "LV002-STM32CubeMX工程创建",
                    "url": "/sdoc/dev-tool/stm32cube/126b08aaf7c11b6e19f8d60a.html",
                    "frontmatter": {
                      "title": "LV002-STM32CubeMX工程创建",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/dev-tool/stm32cube/126b08aaf7c11b6e19f8d60a",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "e19f8d60a0f64d51a22bc5a8a04bf26f",
                        "useduuid": "e19f8d60a"
                      }
                    }
                  },
                  {
                    "title": "LV010-Makefile管理工程",
                    "url": "/sdoc/dev-tool/stm32cube/126b08e6edcf211c7df7916d.html",
                    "frontmatter": {
                      "title": "LV010-Makefile管理工程",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/dev-tool/stm32cube/126b08e6edcf211c7df7916d",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "c7df7916d51c40f295ec8bdf0e20a228",
                        "useduuid": "c7df7916d"
                      }
                    }
                  },
                  {
                    "title": "LV012-Makefile文件分析",
                    "url": "/sdoc/dev-tool/stm32cube/126b08e6ef7626b7c442bfe2.html",
                    "frontmatter": {
                      "title": "LV012-Makefile文件分析",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/dev-tool/stm32cube/126b08e6ef7626b7c442bfe2",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "7c442bfe2f7348608819bf852cebb54e",
                        "useduuid": "7c442bfe2"
                      }
                    }
                  },
                  {
                    "title": "LV040-LD链接脚本",
                    "url": "/sdoc/dev-tool/keil/126b08e6f2e40a653e71bc02.html",
                    "frontmatter": {
                      "title": "LV040-LD链接脚本",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/dev-tool/keil/126b08e6f2e40a653e71bc02",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "53e71bc02dd346aeac5749700b205317",
                        "useduuid": "53e71bc02"
                      }
                    }
                  },
                  {
                    "title": "LV030-STM32CubeIDE",
                    "url": "/sdoc/dev-tool/stm32cube/126b08e6f0211b46eabe9106.html",
                    "frontmatter": {
                      "title": "LV030-STM32CubeIDE",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/dev-tool/stm32cube/126b08e6f0211b46eabe9106",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "6eabe9106e39465d81b7853e19f74deb",
                        "useduuid": "6eabe9106"
                      }
                    }
                  }
                ],
                "frontmatter": {}
              },
              {
                "title": "10-下载与调试",
                "children": [
                  {
                    "title": "LV001-下载与调试概述",
                    "url": "/sdoc/dev-tool/burn-and-debug/126b08ab16fa3e011692369d.html",
                    "frontmatter": {
                      "title": "LV001-下载与调试概述",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/dev-tool/burn-and-debug/126b08ab16fa3e011692369d",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "11692369dc744332bc6f2569dd8ec58a",
                        "useduuid": "11692369d"
                      }
                    }
                  },
                  {
                    "title": "LV002-JLink怎么使用",
                    "url": "/sdoc/dev-tool/burn-and-debug/126b08ab15ee0921c4f7fd64.html",
                    "frontmatter": {
                      "title": "LV002-JLink怎么使用",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/dev-tool/burn-and-debug/126b08ab15ee0921c4f7fd64",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "1c4f7fd64909407cb589ad3348a0c376",
                        "useduuid": "1c4f7fd64"
                      }
                    }
                  },
                  {
                    "title": "LV010-JFlash简介",
                    "url": "/sdoc/dev-tool/burn-and-debug/126b08b7f6ce25a6c770f3b5.html",
                    "frontmatter": {
                      "title": "LV010-JFlash简介",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/dev-tool/burn-and-debug/126b08b7f6ce25a6c770f3b5",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "6c770f3b50d84d7fad7f77bc05f872fc",
                        "useduuid": "6c770f3b5"
                      }
                    }
                  },
                  {
                    "title": "LV015-STLink怎么使用",
                    "url": "/sdoc/dev-tool/burn-and-debug/126b08b9c98b11187c20e13a.html",
                    "frontmatter": {
                      "title": "LV015-STLink怎么使用",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/dev-tool/burn-and-debug/126b08b9c98b11187c20e13a",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "87c20e13a48a44dfb380f22a1b102e34",
                        "useduuid": "87c20e13a"
                      }
                    }
                  },
                  {
                    "title": "LV020-ST-LINK-Utility简介",
                    "url": "/sdoc/dev-tool/burn-and-debug/126b08b9cb90276fafba387f.html",
                    "frontmatter": {
                      "title": "LV020-ST-LINK-Utility简介",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/dev-tool/burn-and-debug/126b08b9cb90276fafba387f",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "fafba387f5f84aab849e4d8b464e22ad",
                        "useduuid": "fafba387f"
                      }
                    }
                  },
                  {
                    "title": "LV030-串口下载",
                    "url": "/sdoc/dev-tool/burn-and-debug/126b08b9cea618afd74b243b.html",
                    "frontmatter": {
                      "title": "LV030-串口下载",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/dev-tool/burn-and-debug/126b08b9cea618afd74b243b",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "fd74b243b22149fe9c55a56a7b50b6d5",
                        "useduuid": "fd74b243b"
                      }
                    }
                  }
                ],
                "frontmatter": {}
              }
            ],
            "frontmatter": {}
          },
          {
            "title": "10-基础篇",
            "children": [
              {
                "title": "01-概述",
                "children": [
                  {
                    "title": "LV001-ARM体系结构",
                    "url": "/sdoc/basic/overview/126b08ba0eae364f31526d00.html",
                    "frontmatter": {
                      "title": "LV001-ARM体系结构",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/basic/overview/126b08ba0eae364f31526d00",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "f31526d004e841cf942bb1c43e30f261",
                        "useduuid": "f31526d00"
                      }
                    }
                  },
                  {
                    "title": "LV010-常见存储器",
                    "url": "/sdoc/basic/overview/126b08ba13b3329986816cf4.html",
                    "frontmatter": {
                      "title": "LV010-常见存储器",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/basic/overview/126b08ba13b3329986816cf4",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "986816cf43ae496ea97f2ac2344cf4bc",
                        "useduuid": "986816cf4"
                      }
                    }
                  },
                  {
                    "title": "LV020-CortexM0简介",
                    "url": "/sdoc/basic/overview/126b08c738bc16b5b982661d.html",
                    "frontmatter": {
                      "title": "LV020-CortexM0简介",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/basic/overview/126b08c738bc16b5b982661d",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "5b982661dbf54e3db91954b53e220c58",
                        "useduuid": "5b982661d"
                      }
                    }
                  },
                  {
                    "title": "LV022-CortexM0存储器映射",
                    "url": "/sdoc/basic/overview/126b08e6a7051c291c1151a6.html",
                    "frontmatter": {
                      "title": "LV022-CortexM0存储器映射",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/basic/overview/126b08e6a7051c291c1151a6",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "91c1151a6b3c4a07b26e0383912b8543",
                        "useduuid": "91c1151a6"
                      }
                    }
                  },
                  {
                    "title": "LV030-CortexM3简介",
                    "url": "/sdoc/basic/overview/126b08c73a222946645cba90.html",
                    "frontmatter": {
                      "title": "LV030-CortexM3简介",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/basic/overview/126b08c73a222946645cba90",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "6645cba90f414432ac823c9d1938fc37",
                        "useduuid": "6645cba90"
                      }
                    }
                  },
                  {
                    "title": "LV035-CortexM3存储器系统",
                    "url": "/sdoc/basic/overview/126b08c73d361161792b640a.html",
                    "frontmatter": {
                      "title": "LV035-CortexM3存储器系统",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/basic/overview/126b08c73d361161792b640a",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "1792b640ad2b40c1a34cc0ea4da24ed9",
                        "useduuid": "1792b640a"
                      }
                    }
                  },
                  {
                    "title": "LV040-CortexM3异常",
                    "url": "/sdoc/basic/overview/126b08e5d7b911b28ed9ee4c.html",
                    "frontmatter": {
                      "title": "LV040-CortexM3异常",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/basic/overview/126b08e5d7b911b28ed9ee4c",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "28ed9ee4c4ee4374a05b403be9d08519",
                        "useduuid": "28ed9ee4c"
                      }
                    }
                  },
                  {
                    "title": "LV040-CortexM3的NVIC中断控制",
                    "url": "/sdoc/basic/overview/126b08e5fb5429a0009ffc8b.html",
                    "frontmatter": {
                      "title": "LV040-CortexM3的NVIC中断控制",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/basic/overview/126b08e5fb5429a0009ffc8b",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "0009ffc8b07a4e459a29f0ba0518592b",
                        "useduuid": "0009ffc8b"
                      }
                    }
                  }
                ],
                "frontmatter": {}
              },
              {
                "title": "10-STM32基础",
                "children": [
                  {
                    "title": "LV001-STM32概述",
                    "url": "/sdoc/basic/stm32basic/126b08e5feaa2043ad05a48e.html",
                    "frontmatter": {
                      "title": "LV001-STM32概述",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/basic/stm32basic/126b08e5feaa2043ad05a48e",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "3ad05a48eac840679287e1b2301b039a",
                        "useduuid": "3ad05a48e"
                      }
                    }
                  },
                  {
                    "title": "LV010-嵌入式C语言",
                    "url": "/sdoc/basic/stm32basic/126b08e600543a33cc0a657a.html",
                    "frontmatter": {
                      "title": "LV010-嵌入式C语言",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/basic/stm32basic/126b08e600543a33cc0a657a",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "3cc0a657a05d403785cc85fa30a99505",
                        "useduuid": "3cc0a657a"
                      }
                    }
                  },
                  {
                    "title": "LV020-STM32怎么开发",
                    "url": "/sdoc/basic/stm32basic/126b08e603011c2e21862cc6.html",
                    "frontmatter": {
                      "title": "LV020-STM32怎么开发",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/basic/stm32basic/126b08e603011c2e21862cc6",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "e21862cc6b54423c827258b8732bcdd8",
                        "useduuid": "e21862cc6"
                      }
                    }
                  },
                  {
                    "title": "LV021-认识HAL库",
                    "url": "/sdoc/basic/stm32basic/126b08e608d01035e7260fce.html",
                    "frontmatter": {
                      "title": "LV021-认识HAL库",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/basic/stm32basic/126b08e608d01035e7260fce",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "5e7260fce3184ab293e2a218bc58687b",
                        "useduuid": "5e7260fce"
                      }
                    }
                  },
                  {
                    "title": "LV030-STM32程序下载",
                    "url": "/sdoc/basic/stm32basic/126b08e7828f108bc0b2f2dc.html",
                    "frontmatter": {
                      "title": "LV030-STM32程序下载",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/basic/stm32basic/126b08e7828f108bc0b2f2dc",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "bc0b2f2dc98042cb8e44dc7aa1995faa",
                        "useduuid": "bc0b2f2dc"
                      }
                    }
                  },
                  {
                    "title": "LV040-STM32系统架构",
                    "url": "/sdoc/basic/stm32basic/126b08e6831f0a0031c3f015.html",
                    "frontmatter": {
                      "title": "LV040-STM32系统架构",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/basic/stm32basic/126b08e6831f0a0031c3f015",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "031c3f0159bd41bfa7f2e89f6b50e340",
                        "useduuid": "031c3f015"
                      }
                    }
                  },
                  {
                    "title": "LV045-STM32存储器系统",
                    "url": "/sdoc/basic/stm32basic/126b08e6840f3457e72c8780.html",
                    "frontmatter": {
                      "title": "LV045-STM32存储器系统",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/basic/stm32basic/126b08e6840f3457e72c8780",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "7e72c87803ee4322bcd1072590f70cb3",
                        "useduuid": "7e72c8780"
                      }
                    }
                  },
                  {
                    "title": "LV050-STM32地址重映射",
                    "url": "/sdoc/basic/stm32basic/126b08e6a53918eab18839bd.html",
                    "frontmatter": {
                      "title": "LV050-STM32地址重映射",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/basic/stm32basic/126b08e6a53918eab18839bd",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "ab18839bd52b440b9ca51fa34ea3d714",
                        "useduuid": "ab18839bd"
                      }
                    }
                  }
                ],
                "frontmatter": {}
              },
              {
                "title": "20-STM32的启动",
                "children": [
                  {
                    "title": "LV001-启动文件",
                    "url": "/sdoc/basic/stm32setup/126b08e788e83383285742cb.html",
                    "frontmatter": {
                      "title": "LV001-启动文件",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/basic/stm32setup/126b08e788e83383285742cb",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "3285742cb8d24fba98867646d8e8231b",
                        "useduuid": "3285742cb"
                      }
                    }
                  },
                  {
                    "title": "LV005-启动过程",
                    "url": "/sdoc/basic/stm32setup/126b08e78de70b59cd9ba362.html",
                    "frontmatter": {
                      "title": "LV005-启动过程",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/basic/stm32setup/126b08e78de70b59cd9ba362",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "9cd9ba36208d49f99352645293a0d904",
                        "useduuid": "9cd9ba362"
                      }
                    }
                  },
                  {
                    "title": "LV010-在内部SRAM调试",
                    "url": "/sdoc/basic/stm32setup/126b08e7afad049a561ccf1b.html",
                    "frontmatter": {
                      "title": "LV010-在内部SRAM调试",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/basic/stm32setup/126b08e7afad049a561ccf1b",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "a561ccf1b5d3443c85b0f21280803c3a",
                        "useduuid": "a561ccf1b"
                      }
                    }
                  }
                ],
                "frontmatter": {}
              },
              {
                "title": "30-STM32的中断",
                "children": [
                  {
                    "title": "LV001-STM32中断简介",
                    "url": "/sdoc/basic/stm32interrupt/126b08f57241322fa604782d.html",
                    "frontmatter": {
                      "title": "LV001-STM32中断简介",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/basic/stm32interrupt/126b08f57241322fa604782d",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "fa604782d9e94117829d0f1a00c0d99d",
                        "useduuid": "fa604782d"
                      }
                    }
                  }
                ],
                "frontmatter": {}
              },
              {
                "title": "40-STM32时钟",
                "children": [
                  {
                    "title": "LV001-STM32F1时钟系统",
                    "url": "/sdoc/basic/stm32clock/126b08f5d89727a6ee395582.html",
                    "frontmatter": {
                      "title": "LV001-STM32F1时钟系统",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/basic/stm32clock/126b08f5d89727a6ee395582",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "6ee395582b8f401e806f3f6b8aac7e4a",
                        "useduuid": "6ee395582"
                      }
                    }
                  },
                  {
                    "title": "LV010-STM32F1的SYSCLK",
                    "url": "/sdoc/basic/stm32clock/126b08f5dcd1392ef8558043.html",
                    "frontmatter": {
                      "title": "LV010-STM32F1的SYSCLK",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/basic/stm32clock/126b08f5dcd1392ef8558043",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "ef8558043211434e9696dd7586e40951",
                        "useduuid": "ef8558043"
                      }
                    }
                  }
                ],
                "frontmatter": {}
              },
              {
                "title": "50-STM32内部FLASH",
                "children": [
                  {
                    "title": "LV001-内部FLASH简介",
                    "url": "/sdoc/basic/stm32flash/126b09345207167f3ed95339.html",
                    "frontmatter": {
                      "title": "LV001-内部FLASH简介",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/basic/stm32flash/126b09345207167f3ed95339",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "f3ed95339a054335bd7861fbbdfca984",
                        "useduuid": "f3ed95339"
                      }
                    }
                  },
                  {
                    "title": "LV010-FLASH操作流程",
                    "url": "/sdoc/basic/stm32flash/126b0934555e1e98aa9081c5.html",
                    "frontmatter": {
                      "title": "LV010-FLASH操作流程",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/basic/stm32flash/126b0934555e1e98aa9081c5",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "8aa9081c5bfb4658bc14302518ab96b3",
                        "useduuid": "8aa9081c5"
                      }
                    }
                  },
                  {
                    "title": "LV020-IAP编程简介",
                    "url": "/sdoc/basic/stm32flash/126b0e26745a3124f27972bd.html",
                    "frontmatter": {
                      "title": "LV020-IAP编程简介",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/basic/stm32flash/126b0e26745a3124f27972bd",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "4f27972bd3fc4860b4605d3ba9d93bb7",
                        "useduuid": "4f27972bd"
                      }
                    }
                  },
                  {
                    "title": "LV025-IAP编程实现",
                    "url": "/sdoc/basic/stm32flash/126b0e4540061175c7584cc2.html",
                    "frontmatter": {
                      "title": "LV025-IAP编程实现",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/basic/stm32flash/126b0e4540061175c7584cc2",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "5c7584cc23ea451aaa122d51f3053c7c",
                        "useduuid": "5c7584cc2"
                      }
                    }
                  }
                ],
                "frontmatter": {}
              },
              {
                "title": "60-STM32的内存",
                "children": [
                  {
                    "title": "LV001-STM32内存简介",
                    "url": "/sdoc/basic/stm32memory/126b0941431c016e4bdd2a68.html",
                    "frontmatter": {
                      "title": "LV001-STM32内存简介",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/basic/stm32memory/126b0941431c016e4bdd2a68",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "e4bdd2a68030419b91dea7af452724aa",
                        "useduuid": "e4bdd2a68"
                      }
                    }
                  },
                  {
                    "title": "LV010-内存管理",
                    "url": "/sdoc/basic/stm32memory/126b0e24d5e326e3a7296e85.html",
                    "frontmatter": {
                      "title": "LV010-内存管理",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/basic/stm32memory/126b0e24d5e326e3a7296e85",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "3a7296e85ae54af393dd0790947698ce",
                        "useduuid": "3a7296e85"
                      }
                    }
                  }
                ],
                "frontmatter": {}
              },
              {
                "title": "70-STM32电源管理",
                "children": [
                  {
                    "title": "LV001-电源管理简介",
                    "url": "/sdoc/basic/stm32pwr/126b09513f17393c50358806.html",
                    "frontmatter": {
                      "title": "LV001-电源管理简介",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/basic/stm32pwr/126b09513f17393c50358806",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "c503588060cf485a965221f48977e91d",
                        "useduuid": "c50358806"
                      }
                    }
                  },
                  {
                    "title": "LV010-三种模式实现",
                    "url": "/sdoc/basic/stm32pwr/126b095140443bc89b1ebe84.html",
                    "frontmatter": {
                      "title": "LV010-三种模式实现",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/basic/stm32pwr/126b095140443bc89b1ebe84",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "89b1ebe841074780aa0a2abaac3caa24",
                        "useduuid": "89b1ebe84"
                      }
                    }
                  }
                ],
                "frontmatter": {}
              }
            ],
            "frontmatter": {}
          },
          {
            "title": "20-基本外设篇",
            "children": [
              {
                "title": "01-GPIO",
                "children": [
                  {
                    "title": "LV001-STM32的GPIO简介",
                    "url": "/sdoc/peripheral/gpio/126b08e802d21f6e4f658296.html",
                    "frontmatter": {
                      "title": "LV001-STM32的GPIO简介",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/peripheral/gpio/126b08e802d21f6e4f658296",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "e4f658296d8f440694a80e81f31777d4",
                        "useduuid": "e4f658296"
                      }
                    }
                  },
                  {
                    "title": "LV010-输入输出模式详解",
                    "url": "/sdoc/peripheral/gpio/126b08e804d303ad5b541ecd.html",
                    "frontmatter": {
                      "title": "LV010-输入输出模式详解",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/peripheral/gpio/126b08e804d303ad5b541ecd",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "d5b541ecde0f4e1799e17d09e88a33fa",
                        "useduuid": "d5b541ecd"
                      }
                    }
                  },
                  {
                    "title": "LV020-GPIO控制LED",
                    "url": "/sdoc/peripheral/gpio/126b08e805ca1e15c40474c4.html",
                    "frontmatter": {
                      "title": "LV020-GPIO控制LED",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/peripheral/gpio/126b08e805ca1e15c40474c4",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "5c40474c47fc44e49114f4489f7fb359",
                        "useduuid": "5c40474c4"
                      }
                    }
                  },
                  {
                    "title": "LV030-按键检测",
                    "url": "/sdoc/peripheral/gpio/126b08e8078f1f2b7ad1d6a6.html",
                    "frontmatter": {
                      "title": "LV030-按键检测",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/peripheral/gpio/126b08e8078f1f2b7ad1d6a6",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "b7ad1d6a65df41fab1ae6bd4b2de28b9",
                        "useduuid": "b7ad1d6a6"
                      }
                    }
                  },
                  {
                    "title": "LV040-外部中断",
                    "url": "/sdoc/peripheral/gpio/126b08f58a5c2c09e1d6100f.html",
                    "frontmatter": {
                      "title": "LV040-外部中断",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/peripheral/gpio/126b08f58a5c2c09e1d6100f",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "9e1d6100f7d74737974bd9674a8ba8c0",
                        "useduuid": "9e1d6100f"
                      }
                    }
                  },
                  {
                    "title": "LV045-外部中断实例",
                    "url": "/sdoc/peripheral/gpio/126b08f596281cc89a3bc4c6.html",
                    "frontmatter": {
                      "title": "LV045-外部中断实例",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/peripheral/gpio/126b08f596281cc89a3bc4c6",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "89a3bc4c6a9b4249afce4152ca5d1241",
                        "useduuid": "89a3bc4c6"
                      }
                    }
                  }
                ],
                "frontmatter": {}
              },
              {
                "title": "10-UART",
                "children": [
                  {
                    "title": "LV001-串口通信简介",
                    "url": "/sdoc/peripheral/uart/126b08f60edb3b6ac7962cbf.html",
                    "frontmatter": {
                      "title": "LV001-串口通信简介",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/peripheral/uart/126b08f60edb3b6ac7962cbf",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "ac7962cbf7d245659539f5436bb59e37",
                        "useduuid": "ac7962cbf"
                      }
                    }
                  },
                  {
                    "title": "LV010-STM32的串口",
                    "url": "/sdoc/peripheral/uart/126b08f6146d2d238b102738.html",
                    "frontmatter": {
                      "title": "LV010-STM32的串口",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/peripheral/uart/126b08f6146d2d238b102738",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "38b1027380d146cb959e571687931c97",
                        "useduuid": "38b102738"
                      }
                    }
                  },
                  {
                    "title": "LV020-串口收发实例",
                    "url": "/sdoc/peripheral/uart/126b08f61664097f4a0617fc.html",
                    "frontmatter": {
                      "title": "LV020-串口收发实例",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/peripheral/uart/126b08f61664097f4a0617fc",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "f4a0617fc94447a8962e262d9db98842",
                        "useduuid": "f4a0617fc"
                      }
                    }
                  }
                ],
                "frontmatter": {}
              },
              {
                "title": "15-定时器",
                "children": [
                  {
                    "title": "LV001-基本定时器简介",
                    "url": "/sdoc/peripheral/timer/basic/126b08f6a8e32e3427f3a2b2.html",
                    "frontmatter": {
                      "title": "LV001-基本定时器简介",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/peripheral/timer/basic/126b08f6a8e32e3427f3a2b2",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "427f3a2b26fc476299e1f6f52f2c33ad",
                        "useduuid": "427f3a2b2"
                      }
                    }
                  },
                  {
                    "title": "LV030-通用定时器简介",
                    "url": "/sdoc/peripheral/timer/126b08f6aa441b536809798e.html",
                    "frontmatter": {
                      "title": "LV030-通用定时器简介",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/peripheral/timer/126b08f6aa441b536809798e",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "36809798e68046309b813b9706a23f8a",
                        "useduuid": "36809798e"
                      }
                    }
                  },
                  {
                    "title": "LV035-通用定时器的中断",
                    "url": "/sdoc/peripheral/timer/126b08f6aa9f293ebbce26b2.html",
                    "frontmatter": {
                      "title": "LV035-通用定时器的中断",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/peripheral/timer/126b08f6aa9f293ebbce26b2",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "ebbce26b2eed4f0e8e7db13c33566c30",
                        "useduuid": "ebbce26b2"
                      }
                    }
                  },
                  {
                    "title": "LV040-通用定时器PWM输出",
                    "url": "/sdoc/peripheral/timer/126b08f6aac20ab7bc66d777.html",
                    "frontmatter": {
                      "title": "LV040-通用定时器PWM输出",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/peripheral/timer/126b08f6aac20ab7bc66d777",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "7bc66d777a344e838bab8b97634f96bc",
                        "useduuid": "7bc66d777"
                      }
                    }
                  },
                  {
                    "title": "LV045-通用定时器输入捕获",
                    "url": "/sdoc/peripheral/timer/126b08f6ab6404f5fdfb5648.html",
                    "frontmatter": {
                      "title": "LV045-通用定时器输入捕获",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/peripheral/timer/126b08f6ab6404f5fdfb5648",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "5fdfb5648d1542adb31bc692aaebfac4",
                        "useduuid": "5fdfb5648"
                      }
                    }
                  },
                  {
                    "title": "LV050-通用定时器脉冲计数",
                    "url": "/sdoc/peripheral/timer/126b08f6ab873bc74e57e381.html",
                    "frontmatter": {
                      "title": "LV050-通用定时器脉冲计数",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/peripheral/timer/126b08f6ab873bc74e57e381",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "74e57e3815ac43a9b2ad64b853530fde",
                        "useduuid": "74e57e381"
                      }
                    }
                  },
                  {
                    "title": "LV070-高级定时器简介",
                    "url": "/sdoc/peripheral/timer/126b08f6abf821065c6674f2.html",
                    "frontmatter": {
                      "title": "LV070-高级定时器简介",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/peripheral/timer/126b08f6abf821065c6674f2",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "65c6674f24194a5c905c5931e3b1bb25",
                        "useduuid": "65c6674f2"
                      }
                    }
                  },
                  {
                    "title": "LV075-高级定时器PWM输出",
                    "url": "/sdoc/peripheral/timer/126b08f6ac4f2bb02b42403e.html",
                    "frontmatter": {
                      "title": "LV075-高级定时器PWM输出",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/peripheral/timer/126b08f6ac4f2bb02b42403e",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "02b42403e6334b1e88b3aefe535488bf",
                        "useduuid": "02b42403e"
                      }
                    }
                  },
                  {
                    "title": "LV080-高级定时器输出比较模式",
                    "url": "/sdoc/peripheral/timer/126b08f6aca0253099c9ba29.html",
                    "frontmatter": {
                      "title": "LV080-高级定时器输出比较模式",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/peripheral/timer/126b08f6aca0253099c9ba29",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "099c9ba29781487ab77ef3977ecd7122",
                        "useduuid": "099c9ba29"
                      }
                    }
                  },
                  {
                    "title": "LV085-高级定时器互补输出",
                    "url": "/sdoc/peripheral/timer/126b08f6ad8f2e0487d6c438.html",
                    "frontmatter": {
                      "title": "LV085-高级定时器互补输出",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/peripheral/timer/126b08f6ad8f2e0487d6c438",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "487d6c4384224a459898d149b83609e0",
                        "useduuid": "487d6c438"
                      }
                    }
                  },
                  {
                    "title": "LV090-高级定时器PWM输入",
                    "url": "/sdoc/peripheral/timer/126b08f6ae2512a51a9eec42.html",
                    "frontmatter": {
                      "title": "LV090-高级定时器PWM输入",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/peripheral/timer/126b08f6ae2512a51a9eec42",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "51a9eec423e4412c99aa8247ccd2092d",
                        "useduuid": "51a9eec42"
                      }
                    }
                  },
                  {
                    "title": "LV100-SysTick定时器简介",
                    "url": "/sdoc/peripheral/timer/126b08f7176d34627620ad1b.html",
                    "frontmatter": {
                      "title": "LV100-SysTick定时器简介",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/peripheral/timer/126b08f7176d34627620ad1b",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "27620ad1b6704f3ab64b6bc4d14b88f4",
                        "useduuid": "27620ad1b"
                      }
                    }
                  },
                  {
                    "title": "LV105-自定义延时函数",
                    "url": "/sdoc/peripheral/timer/126b08f71bb31f61f9e3c819.html",
                    "frontmatter": {
                      "title": "LV105-自定义延时函数",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/peripheral/timer/126b08f71bb31f61f9e3c819",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "1f9e3c81978544cfa5b36e225514bb0d",
                        "useduuid": "1f9e3c819"
                      }
                    }
                  }
                ],
                "frontmatter": {}
              },
              {
                "title": "20-看门狗",
                "children": [
                  {
                    "title": "LV001-看门狗简介",
                    "url": "/sdoc/peripheral/watchdog/126b09043ae916195cb39541.html",
                    "frontmatter": {
                      "title": "LV001-看门狗简介",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/peripheral/watchdog/126b09043ae916195cb39541",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "95cb3954118d49beb6d6912a9e3cb522",
                        "useduuid": "95cb39541"
                      }
                    }
                  },
                  {
                    "title": "LV010-看门狗使用实例",
                    "url": "/sdoc/peripheral/watchdog/126b09043c29000296442c6e.html",
                    "frontmatter": {
                      "title": "LV010-看门狗使用实例",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/peripheral/watchdog/126b09043c29000296442c6e",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "296442c6e9ba4600b39cd12075ea87af",
                        "useduuid": "296442c6e"
                      }
                    }
                  }
                ],
                "frontmatter": {}
              },
              {
                "title": "25-FSMC",
                "children": [
                  {
                    "title": "01-FSMC基础",
                    "children": [
                      {
                        "title": "LV001-FSMC简介",
                        "url": "/sdoc/peripheral/fsmc/fsmc-basic/126b092492553b23e8704ba7.html",
                        "frontmatter": {
                          "title": "LV001-FSMC简介",
                          "date": {},
                          "icon": "famicons:logo-markdown",
                          "permalink": "/sdoc/peripheral/fsmc/fsmc-basic/126b092492553b23e8704ba7",
                          "index": true,
                          "tags": null,
                          "categories": null,
                          "copyright": false,
                          "keywords": null,
                          "cover": null,
                          "comments": null,
                          "mathjax": null,
                          "top": null,
                          "description": null,
                          "tdoc": {
                            "detailDate": {},
                            "fulluuid": "3e8704ba79214a3cbb9ab231d637b62e",
                            "useduuid": "3e8704ba7"
                          }
                        }
                      },
                      {
                        "title": "LV005-存储器映射与控制器",
                        "url": "/sdoc/peripheral/fsmc/fsmc-basic/126b092499b000721416c9a0.html",
                        "frontmatter": {
                          "title": "LV005-存储器映射与控制器",
                          "date": {},
                          "icon": "famicons:logo-markdown",
                          "permalink": "/sdoc/peripheral/fsmc/fsmc-basic/126b092499b000721416c9a0",
                          "index": true,
                          "tags": null,
                          "categories": null,
                          "copyright": false,
                          "keywords": null,
                          "cover": null,
                          "comments": null,
                          "mathjax": null,
                          "top": null,
                          "description": null,
                          "tdoc": {
                            "detailDate": {},
                            "fulluuid": "21416c9a03d8478188e3897a2c59aa5e",
                            "useduuid": "21416c9a0"
                          }
                        }
                      },
                      {
                        "title": "LV010-相关HAL库函数",
                        "url": "/sdoc/peripheral/fsmc/fsmc-basic/126b0924b19533081adda526.html",
                        "frontmatter": {
                          "title": "LV010-相关HAL库函数",
                          "date": {},
                          "icon": "famicons:logo-markdown",
                          "permalink": "/sdoc/peripheral/fsmc/fsmc-basic/126b0924b19533081adda526",
                          "index": true,
                          "tags": null,
                          "categories": null,
                          "copyright": false,
                          "keywords": null,
                          "cover": null,
                          "comments": null,
                          "mathjax": null,
                          "top": null,
                          "description": null,
                          "tdoc": {
                            "detailDate": {},
                            "fulluuid": "81adda5266e04132bfcad67ecceec69d",
                            "useduuid": "81adda526"
                          }
                        }
                      }
                    ],
                    "frontmatter": {}
                  },
                  {
                    "title": "05-外部SRAM",
                    "children": [
                      {
                        "title": "LV001-概述",
                        "url": "/sdoc/peripheral/fsmc/sram/126b09248e5b007fcadf7acc.html",
                        "frontmatter": {
                          "title": "LV001-概述",
                          "date": {},
                          "icon": "famicons:logo-markdown",
                          "permalink": "/sdoc/peripheral/fsmc/sram/126b09248e5b007fcadf7acc",
                          "index": true,
                          "tags": null,
                          "categories": null,
                          "copyright": false,
                          "keywords": null,
                          "cover": null,
                          "comments": null,
                          "mathjax": null,
                          "top": null,
                          "description": null,
                          "tdoc": {
                            "detailDate": {},
                            "fulluuid": "fcadf7accc90458fa4cab2cebf963be3",
                            "useduuid": "fcadf7acc"
                          }
                        }
                      },
                      {
                        "title": "LV002-XM8A51216简介",
                        "url": "/sdoc/peripheral/fsmc/sram/126b09248ce51200a79d393f.html",
                        "frontmatter": {
                          "title": "LV002-XM8A51216简介",
                          "date": {},
                          "icon": "famicons:logo-markdown",
                          "permalink": "/sdoc/peripheral/fsmc/sram/126b09248ce51200a79d393f",
                          "index": true,
                          "tags": null,
                          "categories": null,
                          "copyright": false,
                          "keywords": null,
                          "cover": null,
                          "comments": null,
                          "mathjax": null,
                          "top": null,
                          "description": null,
                          "tdoc": {
                            "detailDate": {},
                            "fulluuid": "0a79d393fee944b89889bdacfda6ea95",
                            "useduuid": "0a79d393f"
                          }
                        }
                      },
                      {
                        "title": "LV005-IS62WV51216简介",
                        "url": "/sdoc/peripheral/fsmc/sram/126b09248db61d861c837fd7.html",
                        "frontmatter": {
                          "title": "LV005-IS62WV51216简介",
                          "date": {},
                          "icon": "famicons:logo-markdown",
                          "permalink": "/sdoc/peripheral/fsmc/sram/126b09248db61d861c837fd7",
                          "index": true,
                          "tags": null,
                          "categories": null,
                          "copyright": false,
                          "keywords": null,
                          "cover": null,
                          "comments": null,
                          "mathjax": null,
                          "top": null,
                          "description": null,
                          "tdoc": {
                            "detailDate": {},
                            "fulluuid": "61c837fd7bf24e47b455ebbf97c03db7",
                            "useduuid": "61c837fd7"
                          }
                        }
                      },
                      {
                        "title": "LV015-外部SRAM读写实例",
                        "url": "/sdoc/peripheral/fsmc/sram/126b0924b2d20263b97733d0.html",
                        "frontmatter": {
                          "title": "LV015-外部SRAM读写实例",
                          "date": {},
                          "icon": "famicons:logo-markdown",
                          "permalink": "/sdoc/peripheral/fsmc/sram/126b0924b2d20263b97733d0",
                          "index": true,
                          "tags": null,
                          "categories": null,
                          "copyright": false,
                          "keywords": null,
                          "cover": null,
                          "comments": null,
                          "mathjax": null,
                          "top": null,
                          "description": null,
                          "tdoc": {
                            "detailDate": {},
                            "fulluuid": "3b97733d0c5f43148008ceafa2203f32",
                            "useduuid": "3b97733d0"
                          }
                        }
                      }
                    ],
                    "frontmatter": {}
                  }
                ],
                "frontmatter": {}
              },
              {
                "title": "30-I2C",
                "children": [
                  {
                    "title": "LV001-STM32的I2C",
                    "url": "/sdoc/peripheral/i2c/126b09344c01323883ac1ab4.html",
                    "frontmatter": {
                      "title": "LV001-STM32的I2C",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/peripheral/i2c/126b09344c01323883ac1ab4",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "883ac1ab454e45c8903061818823ca7f",
                        "useduuid": "883ac1ab4"
                      }
                    }
                  },
                  {
                    "title": "LV010-AT24C02简介",
                    "url": "/sdoc/peripheral/i2c/126b09344d8f021f00cacd6c.html",
                    "frontmatter": {
                      "title": "LV010-AT24C02简介",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/peripheral/i2c/126b09344d8f021f00cacd6c",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "f00cacd6ccbd4a459325107dc47b447a",
                        "useduuid": "f00cacd6c"
                      }
                    }
                  },
                  {
                    "title": "LV015-AT24C02使用实例",
                    "url": "/sdoc/peripheral/i2c/126b09344f37186302faabd7.html",
                    "frontmatter": {
                      "title": "LV015-AT24C02使用实例",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/peripheral/i2c/126b09344f37186302faabd7",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "302faabd7f05494cbdcffb39c1c91164",
                        "useduuid": "302faabd7"
                      }
                    }
                  }
                ],
                "frontmatter": {}
              },
              {
                "title": "35-SPI",
                "children": [
                  {
                    "title": "LV001-STM32的SPI",
                    "url": "/sdoc/peripheral/spi/126b0950f4ae14889c830ae3.html",
                    "frontmatter": {
                      "title": "LV001-STM32的SPI",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/peripheral/spi/126b0950f4ae14889c830ae3",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "89c830ae3a594952be17b5abc6bbb737",
                        "useduuid": "89c830ae3"
                      }
                    }
                  },
                  {
                    "title": "LV010-W25QXXX简介",
                    "url": "/sdoc/peripheral/spi/126b0950f64a0b5a3fbcba93.html",
                    "frontmatter": {
                      "title": "LV010-W25QXXX简介",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/peripheral/spi/126b0950f64a0b5a3fbcba93",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "a3fbcba93d1642329a28cddcb65ad8e8",
                        "useduuid": "a3fbcba93"
                      }
                    }
                  },
                  {
                    "title": "LV015-SPI读写W25QXXX实例",
                    "url": "/sdoc/peripheral/spi/126b0950f849211ff053e7ff.html",
                    "frontmatter": {
                      "title": "LV015-SPI读写W25QXXX实例",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/peripheral/spi/126b0950f849211ff053e7ff",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "ff053e7ff3e247358beec3bab1ba61de",
                        "useduuid": "ff053e7ff"
                      }
                    }
                  }
                ],
                "frontmatter": {}
              },
              {
                "title": "40-DMA",
                "children": [
                  {
                    "title": "LV001-DMA简介",
                    "url": "/sdoc/peripheral/dma/126b0950fbc52669af52caac.html",
                    "frontmatter": {
                      "title": "LV001-DMA简介",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/peripheral/dma/126b0950fbc52669af52caac",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "9af52caac91c42b1b28d2e09c22f8d43",
                        "useduuid": "9af52caac"
                      }
                    }
                  },
                  {
                    "title": "LV010-DMA使用实例",
                    "url": "/sdoc/peripheral/dma/126b0950fc960317c7b64826.html",
                    "frontmatter": {
                      "title": "LV010-DMA使用实例",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/peripheral/dma/126b0950fc960317c7b64826",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "7c7b6482620b4698a5eac4b6e449f631",
                        "useduuid": "7c7b64826"
                      }
                    }
                  }
                ],
                "frontmatter": {}
              },
              {
                "title": "50-SDIO",
                "children": [
                  {
                    "title": "LV001-SD卡简介",
                    "url": "/sdoc/peripheral/sdio/126b0950fe110bc81c4d2fd3.html",
                    "frontmatter": {
                      "title": "LV001-SD卡简介",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/peripheral/sdio/126b0950fe110bc81c4d2fd3",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "81c4d2fd3b3049a1a63dd12e12b5a3fa",
                        "useduuid": "81c4d2fd3"
                      }
                    }
                  },
                  {
                    "title": "LV015-SD卡的操作",
                    "url": "/sdoc/peripheral/sdio/126b0950ff013d660d235356.html",
                    "frontmatter": {
                      "title": "LV015-SD卡的操作",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/peripheral/sdio/126b0950ff013d660d235356",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "60d235356a8a41c6b5be0b1b1d22ed03",
                        "useduuid": "60d235356"
                      }
                    }
                  },
                  {
                    "title": "LV020-STM32的SDIO",
                    "url": "/sdoc/peripheral/sdio/126b0951000d2a75b964fa55.html",
                    "frontmatter": {
                      "title": "LV020-STM32的SDIO",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/peripheral/sdio/126b0951000d2a75b964fa55",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "5b964fa55b1c49f2849632ac18e58758",
                        "useduuid": "5b964fa55"
                      }
                    }
                  },
                  {
                    "title": "LV025-读写SD卡实例",
                    "url": "/sdoc/peripheral/sdio/126b095100d21af60c8ed17e.html",
                    "frontmatter": {
                      "title": "LV025-读写SD卡实例",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/peripheral/sdio/126b095100d21af60c8ed17e",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "60c8ed17e9a9490aaf1efe2014ac5b67",
                        "useduuid": "60c8ed17e"
                      }
                    }
                  }
                ],
                "frontmatter": {}
              },
              {
                "title": "55-RTC时钟",
                "children": [
                  {
                    "title": "LV001-RTC简介",
                    "url": "/sdoc/peripheral/rtc/126b09511eac35920a3f191c.html",
                    "frontmatter": {
                      "title": "LV001-RTC简介",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/peripheral/rtc/126b09511eac35920a3f191c",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "20a3f191c6054d8d9f5fd53ff7b809de",
                        "useduuid": "20a3f191c"
                      }
                    }
                  }
                ],
                "frontmatter": {}
              },
              {
                "title": "60-USB",
                "children": [
                  {
                    "title": "LV001-USB简介",
                    "url": "/sdoc/peripheral/usb/126b095167b12a8376012928.html",
                    "frontmatter": {
                      "title": "LV001-USB简介",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/peripheral/usb/126b095167b12a8376012928",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "3760129282bc45c68e9217915df4f46b",
                        "useduuid": 376012928
                      }
                    }
                  },
                  {
                    "title": "LV010-USB读卡器实例",
                    "url": "/sdoc/peripheral/usb/126b095168b91d9fad5c2a07.html",
                    "frontmatter": {
                      "title": "LV010-USB读卡器实例",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/peripheral/usb/126b095168b91d9fad5c2a07",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "fad5c2a07ce14efe93e887b24a93fb47",
                        "useduuid": "fad5c2a07"
                      }
                    }
                  }
                ],
                "frontmatter": {}
              }
            ],
            "frontmatter": {}
          },
          {
            "title": "30-进阶篇",
            "children": [
              {
                "title": "01-文件系统",
                "children": [
                  {
                    "title": "LV001-文件系统简介",
                    "url": "/sdoc/advanced-chapter/file-system/126b0951040033e78ccbca10.html",
                    "frontmatter": {
                      "title": "LV001-文件系统简介",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/advanced-chapter/file-system/126b0951040033e78ccbca10",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "78ccbca106d046ecaee2de5e4c1f5766",
                        "useduuid": "78ccbca10"
                      }
                    }
                  },
                  {
                    "title": "LV010-FATFS简介",
                    "url": "/sdoc/advanced-chapter/file-system/126b095105912fc87e8eb3f7.html",
                    "frontmatter": {
                      "title": "LV010-FATFS简介",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/advanced-chapter/file-system/126b095105912fc87e8eb3f7",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "87e8eb3f76b14573a4c0856bf2257669",
                        "useduuid": "87e8eb3f7"
                      }
                    }
                  },
                  {
                    "title": "LV015-基于SPIFLASH移植FATFS",
                    "url": "/sdoc/advanced-chapter/file-system/126b0951078a03391bda267a.html",
                    "frontmatter": {
                      "title": "LV015-基于SPIFLASH移植FATFS",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/advanced-chapter/file-system/126b0951078a03391bda267a",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "91bda267a4934867a0b05673bbc3ef13",
                        "useduuid": "91bda267a"
                      }
                    }
                  },
                  {
                    "title": "LV015-基于SD卡移植FATFS",
                    "url": "/sdoc/advanced-chapter/file-system/126b09511b702501a47f120c.html",
                    "frontmatter": {
                      "title": "LV015-基于SD卡移植FATFS",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/advanced-chapter/file-system/126b09511b702501a47f120c",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "1a47f120cd8c41b6ab06d05da2ace352",
                        "useduuid": "1a47f120c"
                      }
                    }
                  },
                  {
                    "title": "LV025-FATFS中自定义的一些函数",
                    "url": "/sdoc/advanced-chapter/file-system/126b09511d060b54b7d725e9.html",
                    "frontmatter": {
                      "title": "LV025-FATFS中自定义的一些函数",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/advanced-chapter/file-system/126b09511d060b54b7d725e9",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "4b7d725e9ba54c78945189a9341e3b34",
                        "useduuid": "4b7d725e9"
                      }
                    }
                  }
                ],
                "frontmatter": {}
              },
              {
                "title": "02-ESP8266",
                "children": [
                  {
                    "title": "LV001-ESP8266模块简介",
                    "url": "/sdoc/advanced-chapter/esp8266/126b0951502d346ca9aa7929.html",
                    "frontmatter": {
                      "title": "LV001-ESP8266模块简介",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/advanced-chapter/esp8266/126b0951502d346ca9aa7929",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "ca9aa79298244701abe40ba6e8a3afb0",
                        "useduuid": "ca9aa7929"
                      }
                    }
                  },
                  {
                    "title": "LV010-AT指令",
                    "url": "/sdoc/advanced-chapter/esp8266/126b095151472d621a6605a9.html",
                    "frontmatter": {
                      "title": "LV010-AT指令",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/advanced-chapter/esp8266/126b095151472d621a6605a9",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "21a6605a91b34e7b87e3081f66267021",
                        "useduuid": "21a6605a9"
                      }
                    }
                  },
                  {
                    "title": "LV015-ESP8266固件烧录",
                    "url": "/sdoc/advanced-chapter/esp8266/126b0951520814de18399844.html",
                    "frontmatter": {
                      "title": "LV015-ESP8266固件烧录",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/advanced-chapter/esp8266/126b0951520814de18399844",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "e18399844bf344e3bb81cdc33db73395",
                        "useduuid": "e18399844"
                      }
                    }
                  },
                  {
                    "title": "LV020-ATK-ESP8266使用实例",
                    "url": "/sdoc/advanced-chapter/esp8266/126b095152fb04ead8380cb5.html",
                    "frontmatter": {
                      "title": "LV020-ATK-ESP8266使用实例",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/advanced-chapter/esp8266/126b095152fb04ead8380cb5",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "ad8380cb587c446592ab6fa1ae7318fd",
                        "useduuid": "ad8380cb5"
                      }
                    }
                  }
                ],
                "frontmatter": {}
              },
              {
                "title": "03-OV7725",
                "children": [
                  {
                    "title": "LV001-ATK-MC6625F模块简介",
                    "url": "/sdoc/advanced-chapter/ov7725/126b09516b08191a7bd0fd02.html",
                    "frontmatter": {
                      "title": "LV001-ATK-MC6625F模块简介",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/advanced-chapter/ov7725/126b09516b08191a7bd0fd02",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "a7bd0fd0290345cfae6ad4ff74f043f7",
                        "useduuid": "a7bd0fd02"
                      }
                    }
                  },
                  {
                    "title": "LV010-SCCB协议简介",
                    "url": "/sdoc/advanced-chapter/ov7725/126b09516b6c2fed98855250.html",
                    "frontmatter": {
                      "title": "LV010-SCCB协议简介",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/advanced-chapter/ov7725/126b09516b6c2fed98855250",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "d9885525026649bdb9a31be28b79a722",
                        "useduuid": "d98855250"
                      }
                    }
                  },
                  {
                    "title": "LV020-OV7725简介",
                    "url": "/sdoc/advanced-chapter/ov7725/126b09516bd03c413cd356e8.html",
                    "frontmatter": {
                      "title": "LV020-OV7725简介",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/advanced-chapter/ov7725/126b09516bd03c413cd356e8",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "13cd356e84f447f3b52ee1a287368dce",
                        "useduuid": "13cd356e8"
                      }
                    }
                  }
                ],
                "frontmatter": {}
              },
              {
                "title": "04-显示屏",
                "children": [
                  {
                    "title": "01-OLED",
                    "children": [
                      {
                        "title": "LV001-OLED简介",
                        "url": "/sdoc/advanced-chapter/display/oled/126b09516d6c2a948085516b.html",
                        "frontmatter": {
                          "title": "LV001-OLED简介",
                          "date": {},
                          "icon": "famicons:logo-markdown",
                          "permalink": "/sdoc/advanced-chapter/display/oled/126b09516d6c2a948085516b",
                          "index": true,
                          "tags": null,
                          "categories": null,
                          "copyright": false,
                          "keywords": null,
                          "cover": null,
                          "comments": null,
                          "mathjax": null,
                          "top": null,
                          "description": null,
                          "tdoc": {
                            "detailDate": {},
                            "fulluuid": "48085516b89044b2a637057cfaac3f5c",
                            "useduuid": "48085516b"
                          }
                        }
                      },
                      {
                        "title": "LV010-8080时序驱动OLED",
                        "url": "/sdoc/advanced-chapter/display/oled/126b09517279099247b327e5.html",
                        "frontmatter": {
                          "title": "LV010-8080时序驱动OLED",
                          "date": {},
                          "icon": "famicons:logo-markdown",
                          "permalink": "/sdoc/advanced-chapter/display/oled/126b09517279099247b327e5",
                          "index": true,
                          "tags": null,
                          "categories": null,
                          "copyright": false,
                          "keywords": null,
                          "cover": null,
                          "comments": null,
                          "mathjax": null,
                          "top": null,
                          "description": null,
                          "tdoc": {
                            "detailDate": {},
                            "fulluuid": "247b327e5f1747919749deb8038e066d",
                            "useduuid": "247b327e5"
                          }
                        }
                      }
                    ],
                    "frontmatter": {}
                  },
                  {
                    "title": "02-LCD",
                    "children": [
                      {
                        "title": "LV001-LCD简介",
                        "url": "/sdoc/advanced-chapter/display/lcd/126b0951740b3b3a3f69973e.html",
                        "frontmatter": {
                          "title": "LV001-LCD简介",
                          "date": {},
                          "icon": "famicons:logo-markdown",
                          "permalink": "/sdoc/advanced-chapter/display/lcd/126b0951740b3b3a3f69973e",
                          "index": true,
                          "tags": null,
                          "categories": null,
                          "copyright": false,
                          "keywords": null,
                          "cover": null,
                          "comments": null,
                          "mathjax": null,
                          "top": null,
                          "description": null,
                          "tdoc": {
                            "detailDate": {},
                            "fulluuid": "a3f69973ef4142428240aba5719aeeb0",
                            "useduuid": "a3f69973e"
                          }
                        }
                      },
                      {
                        "title": "LV010-液晶控制原理",
                        "url": "/sdoc/advanced-chapter/display/lcd/126b0951760b03320ea5c5be.html",
                        "frontmatter": {
                          "title": "LV010-液晶控制原理",
                          "date": {},
                          "icon": "famicons:logo-markdown",
                          "permalink": "/sdoc/advanced-chapter/display/lcd/126b0951760b03320ea5c5be",
                          "index": true,
                          "tags": null,
                          "categories": null,
                          "copyright": false,
                          "keywords": null,
                          "cover": null,
                          "comments": null,
                          "mathjax": null,
                          "top": null,
                          "description": null,
                          "tdoc": {
                            "detailDate": {},
                            "fulluuid": "20ea5c5be93445288eac3b57c2e84f66",
                            "useduuid": "20ea5c5be"
                          }
                        }
                      },
                      {
                        "title": "LV015-ATK-MD0280模块",
                        "url": "/sdoc/advanced-chapter/display/lcd/126b095237661ce983ad47b1.html",
                        "frontmatter": {
                          "title": "LV015-ATK-MD0280模块",
                          "date": {},
                          "icon": "famicons:logo-markdown",
                          "permalink": "/sdoc/advanced-chapter/display/lcd/126b095237661ce983ad47b1",
                          "index": true,
                          "tags": null,
                          "categories": null,
                          "copyright": false,
                          "keywords": null,
                          "cover": null,
                          "comments": null,
                          "mathjax": null,
                          "top": null,
                          "description": null,
                          "tdoc": {
                            "detailDate": {},
                            "fulluuid": "983ad47b1ccb49c59396418e90556b0c",
                            "useduuid": "983ad47b1"
                          }
                        }
                      },
                      {
                        "title": "LV016-IL9341简介",
                        "url": "/sdoc/advanced-chapter/display/lcd/126b095238ef12080fa9e2fc.html",
                        "frontmatter": {
                          "title": "LV016-IL9341简介",
                          "date": {},
                          "icon": "famicons:logo-markdown",
                          "permalink": "/sdoc/advanced-chapter/display/lcd/126b095238ef12080fa9e2fc",
                          "index": true,
                          "tags": null,
                          "categories": null,
                          "copyright": false,
                          "keywords": null,
                          "cover": null,
                          "comments": null,
                          "mathjax": null,
                          "top": null,
                          "description": null,
                          "tdoc": {
                            "detailDate": {},
                            "fulluuid": "80fa9e2fc1c846ac9bfafe695ffc6b7d",
                            "useduuid": "80fa9e2fc"
                          }
                        }
                      },
                      {
                        "title": "LV020-FSMC模拟8080时序",
                        "url": "/sdoc/advanced-chapter/display/lcd/126b09523c371707f0bd772f.html",
                        "frontmatter": {
                          "title": "LV020-FSMC模拟8080时序",
                          "date": {},
                          "icon": "famicons:logo-markdown",
                          "permalink": "/sdoc/advanced-chapter/display/lcd/126b09523c371707f0bd772f",
                          "index": true,
                          "tags": null,
                          "categories": null,
                          "copyright": false,
                          "keywords": null,
                          "cover": null,
                          "comments": null,
                          "mathjax": null,
                          "top": null,
                          "description": null,
                          "tdoc": {
                            "detailDate": {},
                            "fulluuid": "7f0bd772fcbd424ab2f5aaf94abf65ff",
                            "useduuid": "7f0bd772f"
                          }
                        }
                      },
                      {
                        "title": "LV025-LCD显示实例",
                        "url": "/sdoc/advanced-chapter/display/lcd/126b095253d9037570d31d42.html",
                        "frontmatter": {
                          "title": "LV025-LCD显示实例",
                          "date": {},
                          "icon": "famicons:logo-markdown",
                          "permalink": "/sdoc/advanced-chapter/display/lcd/126b095253d9037570d31d42",
                          "index": true,
                          "tags": null,
                          "categories": null,
                          "copyright": false,
                          "keywords": null,
                          "cover": null,
                          "comments": null,
                          "mathjax": null,
                          "top": null,
                          "description": null,
                          "tdoc": {
                            "detailDate": {},
                            "fulluuid": "570d31d42d894e208a1fb9d5c484e257",
                            "useduuid": "570d31d42"
                          }
                        }
                      },
                      {
                        "title": "LV030-字符编码基础",
                        "url": "/sdoc/advanced-chapter/display/lcd/126b095255800a53f67e99cc.html",
                        "frontmatter": {
                          "title": "LV030-字符编码基础",
                          "date": {},
                          "icon": "famicons:logo-markdown",
                          "permalink": "/sdoc/advanced-chapter/display/lcd/126b095255800a53f67e99cc",
                          "index": true,
                          "tags": null,
                          "categories": null,
                          "copyright": false,
                          "keywords": null,
                          "cover": null,
                          "comments": null,
                          "mathjax": null,
                          "top": null,
                          "description": null,
                          "tdoc": {
                            "detailDate": {},
                            "fulluuid": "3f67e99cc1774328be76eff3ae429948",
                            "useduuid": "3f67e99cc"
                          }
                        }
                      },
                      {
                        "title": "LV035-中英文的显示",
                        "url": "/sdoc/advanced-chapter/display/lcd/126b0952576b3df0941e36ed.html",
                        "frontmatter": {
                          "title": "LV035-中英文的显示",
                          "date": {},
                          "icon": "famicons:logo-markdown",
                          "permalink": "/sdoc/advanced-chapter/display/lcd/126b0952576b3df0941e36ed",
                          "index": true,
                          "tags": null,
                          "categories": null,
                          "copyright": false,
                          "keywords": null,
                          "cover": null,
                          "comments": null,
                          "mathjax": null,
                          "top": null,
                          "description": null,
                          "tdoc": {
                            "detailDate": {},
                            "fulluuid": "0941e36ed35b4da7a71acace5c8d2e0d",
                            "useduuid": "0941e36ed"
                          }
                        }
                      },
                      {
                        "title": "LV040-实现任意大小字模",
                        "url": "/sdoc/advanced-chapter/display/lcd/126b09525e7116330989fbcc.html",
                        "frontmatter": {
                          "title": "LV040-实现任意大小字模",
                          "date": {},
                          "icon": "famicons:logo-markdown",
                          "permalink": "/sdoc/advanced-chapter/display/lcd/126b09525e7116330989fbcc",
                          "index": true,
                          "tags": null,
                          "categories": null,
                          "copyright": false,
                          "keywords": null,
                          "cover": null,
                          "comments": null,
                          "mathjax": null,
                          "top": null,
                          "description": null,
                          "tdoc": {
                            "detailDate": {},
                            "fulluuid": "30989fbcc8354f6baad6455294de0120",
                            "useduuid": "30989fbcc"
                          }
                        }
                      }
                    ],
                    "frontmatter": {}
                  }
                ],
                "frontmatter": {}
              },
              {
                "title": "90-FreeRTOS",
                "children": [
                  {
                    "title": "01-FreeRTOS简介",
                    "children": [
                      {
                        "title": "LV001-FreeRTOS简介",
                        "url": "/docs/126b096ee4d10f3bb564b607.html",
                        "frontmatter": {
                          "title": "LV001-FreeRTOS简介",
                          "date": {},
                          "icon": "famicons:logo-markdown",
                          "permalink": "/docs/126b096ee4d10f3bb564b607",
                          "index": true,
                          "tags": null,
                          "categories": null,
                          "copyright": false,
                          "keywords": null,
                          "cover": null,
                          "comments": null,
                          "mathjax": null,
                          "top": null,
                          "description": null,
                          "tdoc": {
                            "detailDate": {},
                            "fulluuid": "bb564b607089439882d4247b57282de9",
                            "useduuid": "bb564b607"
                          }
                        }
                      }
                    ],
                    "frontmatter": {}
                  }
                ],
                "frontmatter": {}
              }
            ],
            "frontmatter": {}
          },
          {
            "title": "60-通信专题",
            "children": [
              {
                "title": "01-I2C协议",
                "children": [
                  {
                    "title": "LV001-I2C简介",
                    "url": "/sdoc/communication/i2c/126b09043f2d250b963bfb0d.html",
                    "frontmatter": {
                      "title": "LV001-I2C简介",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/communication/i2c/126b09043f2d250b963bfb0d",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "b963bfb0deb74fcaa8f060b7b084d3d8",
                        "useduuid": "b963bfb0d"
                      }
                    }
                  },
                  {
                    "title": "LV020-AT24C02实例分析",
                    "url": "/sdoc/communication/i2c/126b09043fca31869028172d.html",
                    "frontmatter": {
                      "title": "LV020-AT24C02实例分析",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/communication/i2c/126b09043fca31869028172d",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "69028172daa144dcbab34851329c3348",
                        "useduuid": "69028172d"
                      }
                    }
                  }
                ],
                "frontmatter": {}
              },
              {
                "title": "10-串口",
                "children": [
                  {
                    "title": "LV001-串口通信简介",
                    "url": "/sdoc/communication/serial-port/126b0904421d06db7b197798.html",
                    "frontmatter": {
                      "title": "LV001-串口通信简介",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/communication/serial-port/126b0904421d06db7b197798",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "b7b197798fd74f3fb97abd23e12eb7bc",
                        "useduuid": "b7b197798"
                      }
                    }
                  },
                  {
                    "title": "LV020-RS232简介",
                    "url": "/sdoc/communication/serial-port/126b0950f26b1afbd6db3885.html",
                    "frontmatter": {
                      "title": "LV020-RS232简介",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/communication/serial-port/126b0950f26b1afbd6db3885",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "bd6db38856214d8db0d0697d94245e7d",
                        "useduuid": "bd6db3885"
                      }
                    }
                  },
                  {
                    "title": "LV030-RS485简介",
                    "url": "/sdoc/communication/serial-port/126b0950f287303e7c68cbb5.html",
                    "frontmatter": {
                      "title": "LV030-RS485简介",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/communication/serial-port/126b0950f287303e7c68cbb5",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "e7c68cbb501d41a4be750e720e3a5e0a",
                        "useduuid": "e7c68cbb5"
                      }
                    }
                  }
                ],
                "frontmatter": {}
              },
              {
                "title": "30-SPI",
                "children": [
                  {
                    "title": "LV001-SPI简介",
                    "url": "/sdoc/communication/spi/126b0950dceb1d850b1e36d8.html",
                    "frontmatter": {
                      "title": "LV001-SPI简介",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/communication/spi/126b0950dceb1d850b1e36d8",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "50b1e36d86eb4c0e85c11fe350fcd877",
                        "useduuid": "50b1e36d8"
                      }
                    }
                  }
                ],
                "frontmatter": {}
              },
              {
                "title": "40-CAN",
                "children": [
                  {
                    "title": "LV001-CAN通信简介",
                    "url": "/sdoc/communication/can/126b0950f34624bdf8f7407f.html",
                    "frontmatter": {
                      "title": "LV001-CAN通信简介",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/communication/can/126b0950f34624bdf8f7407f",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "df8f7407fc324becb0237697f4ea8f9c",
                        "useduuid": "df8f7407f"
                      }
                    }
                  }
                ],
                "frontmatter": {}
              },
              {
                "title": "LV001-通信概述",
                "url": "/sdoc/communication/126b09043e1c12685fda3fb8.html",
                "frontmatter": {
                  "title": "LV001-通信概述",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/communication/126b09043e1c12685fda3fb8",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "85fda3fb8df54e90807dd03d5831b5bf",
                    "useduuid": "85fda3fb8"
                  }
                }
              }
            ],
            "frontmatter": {}
          }
        ]
      }
    },
    "inv": {
      "sdoc/01-开发工具/01-keil": {
        "url": "sdoc/dev-tool/keil/126b08a8b73a3181c0cdd833.html",
        "filePath": "sdoc/01-开发工具/01-keil/index",
        "catalogues": [
          {
            "title": "LV001-keil简介",
            "url": "/sdoc/dev-tool/keil/126b08a8b79e2ecaa634dd81.html",
            "frontmatter": {
              "title": "LV001-keil简介",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/dev-tool/keil/126b08a8b79e2ecaa634dd81",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "aa634dd813594b2686f1ae7b5b6911d4",
                "useduuid": "aa634dd81"
              }
            }
          },
          {
            "title": "LV002-工程创建",
            "url": "/sdoc/dev-tool/keil/126b08aa5e32382c0ab32a01.html",
            "frontmatter": {
              "title": "LV002-工程创建",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/dev-tool/keil/126b08aa5e32382c0ab32a01",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "c0ab32a01a744756b6c0c3e4231ed9aa",
                "useduuid": "c0ab32a01"
              }
            }
          },
          {
            "title": "LV010-程序与编译",
            "url": "/sdoc/dev-tool/keil/126b08e6a9c4187125e57a5f.html",
            "frontmatter": {
              "title": "LV010-程序与编译",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/dev-tool/keil/126b08e6a9c4187125e57a5f",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "125e57a5ff854ebaa58b6fff51b99a11",
                "useduuid": "125e57a5f"
              }
            }
          },
          {
            "title": "LV015-MDK工程文件简介",
            "url": "/sdoc/dev-tool/keil/126b0913857d3670d6f0eef1.html",
            "frontmatter": {
              "title": "LV015-MDK工程文件简介",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/dev-tool/keil/126b0913857d3670d6f0eef1",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "0d6f0eef153042fc862dc752cb0e3c2d",
                "useduuid": "0d6f0eef1"
              }
            }
          },
          {
            "title": "LV016-Output目录文件",
            "url": "/sdoc/dev-tool/keil/126b091384f9220a0ff9cf1d.html",
            "frontmatter": {
              "title": "LV016-Output目录文件",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/dev-tool/keil/126b091384f9220a0ff9cf1d",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "a0ff9cf1dff34a1790997424e34bac30",
                "useduuid": "a0ff9cf1d"
              }
            }
          },
          {
            "title": "LV017-Listing目录文件",
            "url": "/sdoc/dev-tool/keil/126b0913865605b5493dc70e.html",
            "frontmatter": {
              "title": "LV017-Listing目录文件",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/dev-tool/keil/126b0913865605b5493dc70e",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "5493dc70ee6849e0b32a91f39d8e2488",
                "useduuid": "5493dc70e"
              }
            }
          },
          {
            "title": "LV020-SCT分散加载文件",
            "url": "/sdoc/dev-tool/keil/126b08e6cfb5032dbc05b46a.html",
            "frontmatter": {
              "title": "LV020-SCT分散加载文件",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/dev-tool/keil/126b08e6cfb5032dbc05b46a",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "dbc05b46abca47d8a176762f5148dc50",
                "useduuid": "dbc05b46a"
              }
            }
          },
          {
            "title": "LV025-SCT文件应用",
            "url": "/sdoc/dev-tool/keil/126b08e6d335070a7fd1934d.html",
            "frontmatter": {
              "title": "LV025-SCT文件应用",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/dev-tool/keil/126b08e6d335070a7fd1934d",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "a7fd1934dbcb4eef93f57d3dce4e0059",
                "useduuid": "a7fd1934d"
              }
            }
          },
          {
            "title": "LV040-在线调试",
            "url": "/sdoc/dev-tool/keil/126b08e76d70287e70afead6.html",
            "frontmatter": {
              "title": "LV040-在线调试",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/dev-tool/keil/126b08e76d70287e70afead6",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "e70afead6dd14692ad3b3749eb2cad4d",
                "useduuid": "e70afead6"
              }
            }
          }
        ]
      },
      "sdoc/01-开发工具/02-STM32Cube": {
        "url": "sdoc/dev-tool/stm32cube/126b08aa588123a43b261847.html",
        "filePath": "sdoc/01-开发工具/02-STM32Cube/index",
        "catalogues": [
          {
            "title": "LV001-STM32CubeMX简介",
            "url": "/sdoc/dev-tool/stm32cube/126b08aa58bc0838d250f7bd.html",
            "frontmatter": {
              "title": "LV001-STM32CubeMX简介",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/dev-tool/stm32cube/126b08aa58bc0838d250f7bd",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "8d250f7bdb9d4b4fb822b135635cdf20",
                "useduuid": "8d250f7bd"
              }
            }
          },
          {
            "title": "LV002-STM32CubeMX工程创建",
            "url": "/sdoc/dev-tool/stm32cube/126b08aaf7c11b6e19f8d60a.html",
            "frontmatter": {
              "title": "LV002-STM32CubeMX工程创建",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/dev-tool/stm32cube/126b08aaf7c11b6e19f8d60a",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "e19f8d60a0f64d51a22bc5a8a04bf26f",
                "useduuid": "e19f8d60a"
              }
            }
          },
          {
            "title": "LV010-Makefile管理工程",
            "url": "/sdoc/dev-tool/stm32cube/126b08e6edcf211c7df7916d.html",
            "frontmatter": {
              "title": "LV010-Makefile管理工程",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/dev-tool/stm32cube/126b08e6edcf211c7df7916d",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "c7df7916d51c40f295ec8bdf0e20a228",
                "useduuid": "c7df7916d"
              }
            }
          },
          {
            "title": "LV012-Makefile文件分析",
            "url": "/sdoc/dev-tool/stm32cube/126b08e6ef7626b7c442bfe2.html",
            "frontmatter": {
              "title": "LV012-Makefile文件分析",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/dev-tool/stm32cube/126b08e6ef7626b7c442bfe2",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "7c442bfe2f7348608819bf852cebb54e",
                "useduuid": "7c442bfe2"
              }
            }
          },
          {
            "title": "LV040-LD链接脚本",
            "url": "/sdoc/dev-tool/keil/126b08e6f2e40a653e71bc02.html",
            "frontmatter": {
              "title": "LV040-LD链接脚本",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/dev-tool/keil/126b08e6f2e40a653e71bc02",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "53e71bc02dd346aeac5749700b205317",
                "useduuid": "53e71bc02"
              }
            }
          },
          {
            "title": "LV030-STM32CubeIDE",
            "url": "/sdoc/dev-tool/stm32cube/126b08e6f0211b46eabe9106.html",
            "frontmatter": {
              "title": "LV030-STM32CubeIDE",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/dev-tool/stm32cube/126b08e6f0211b46eabe9106",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "6eabe9106e39465d81b7853e19f74deb",
                "useduuid": "6eabe9106"
              }
            }
          }
        ]
      },
      "sdoc/01-开发工具/10-下载与调试": {
        "url": "sdoc/dev-tool/burn-and-debug/126b08ab150e18611433564e.html",
        "filePath": "sdoc/01-开发工具/10-下载与调试/index",
        "catalogues": [
          {
            "title": "LV001-下载与调试概述",
            "url": "/sdoc/dev-tool/burn-and-debug/126b08ab16fa3e011692369d.html",
            "frontmatter": {
              "title": "LV001-下载与调试概述",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/dev-tool/burn-and-debug/126b08ab16fa3e011692369d",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "11692369dc744332bc6f2569dd8ec58a",
                "useduuid": "11692369d"
              }
            }
          },
          {
            "title": "LV002-JLink怎么使用",
            "url": "/sdoc/dev-tool/burn-and-debug/126b08ab15ee0921c4f7fd64.html",
            "frontmatter": {
              "title": "LV002-JLink怎么使用",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/dev-tool/burn-and-debug/126b08ab15ee0921c4f7fd64",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "1c4f7fd64909407cb589ad3348a0c376",
                "useduuid": "1c4f7fd64"
              }
            }
          },
          {
            "title": "LV010-JFlash简介",
            "url": "/sdoc/dev-tool/burn-and-debug/126b08b7f6ce25a6c770f3b5.html",
            "frontmatter": {
              "title": "LV010-JFlash简介",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/dev-tool/burn-and-debug/126b08b7f6ce25a6c770f3b5",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "6c770f3b50d84d7fad7f77bc05f872fc",
                "useduuid": "6c770f3b5"
              }
            }
          },
          {
            "title": "LV015-STLink怎么使用",
            "url": "/sdoc/dev-tool/burn-and-debug/126b08b9c98b11187c20e13a.html",
            "frontmatter": {
              "title": "LV015-STLink怎么使用",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/dev-tool/burn-and-debug/126b08b9c98b11187c20e13a",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "87c20e13a48a44dfb380f22a1b102e34",
                "useduuid": "87c20e13a"
              }
            }
          },
          {
            "title": "LV020-ST-LINK-Utility简介",
            "url": "/sdoc/dev-tool/burn-and-debug/126b08b9cb90276fafba387f.html",
            "frontmatter": {
              "title": "LV020-ST-LINK-Utility简介",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/dev-tool/burn-and-debug/126b08b9cb90276fafba387f",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "fafba387f5f84aab849e4d8b464e22ad",
                "useduuid": "fafba387f"
              }
            }
          },
          {
            "title": "LV030-串口下载",
            "url": "/sdoc/dev-tool/burn-and-debug/126b08b9cea618afd74b243b.html",
            "frontmatter": {
              "title": "LV030-串口下载",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/dev-tool/burn-and-debug/126b08b9cea618afd74b243b",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "fd74b243b22149fe9c55a56a7b50b6d5",
                "useduuid": "fd74b243b"
              }
            }
          }
        ]
      },
      "sdoc/01-开发工具": {
        "url": "sdoc/dev-tool/126b08a8b29007f159f1c463.html",
        "filePath": "sdoc/01-开发工具/index",
        "catalogues": [
          {
            "title": "01-keil",
            "children": [
              {
                "title": "LV001-keil简介",
                "url": "/sdoc/dev-tool/keil/126b08a8b79e2ecaa634dd81.html",
                "frontmatter": {
                  "title": "LV001-keil简介",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/dev-tool/keil/126b08a8b79e2ecaa634dd81",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "aa634dd813594b2686f1ae7b5b6911d4",
                    "useduuid": "aa634dd81"
                  }
                }
              },
              {
                "title": "LV002-工程创建",
                "url": "/sdoc/dev-tool/keil/126b08aa5e32382c0ab32a01.html",
                "frontmatter": {
                  "title": "LV002-工程创建",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/dev-tool/keil/126b08aa5e32382c0ab32a01",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "c0ab32a01a744756b6c0c3e4231ed9aa",
                    "useduuid": "c0ab32a01"
                  }
                }
              },
              {
                "title": "LV010-程序与编译",
                "url": "/sdoc/dev-tool/keil/126b08e6a9c4187125e57a5f.html",
                "frontmatter": {
                  "title": "LV010-程序与编译",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/dev-tool/keil/126b08e6a9c4187125e57a5f",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "125e57a5ff854ebaa58b6fff51b99a11",
                    "useduuid": "125e57a5f"
                  }
                }
              },
              {
                "title": "LV015-MDK工程文件简介",
                "url": "/sdoc/dev-tool/keil/126b0913857d3670d6f0eef1.html",
                "frontmatter": {
                  "title": "LV015-MDK工程文件简介",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/dev-tool/keil/126b0913857d3670d6f0eef1",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "0d6f0eef153042fc862dc752cb0e3c2d",
                    "useduuid": "0d6f0eef1"
                  }
                }
              },
              {
                "title": "LV016-Output目录文件",
                "url": "/sdoc/dev-tool/keil/126b091384f9220a0ff9cf1d.html",
                "frontmatter": {
                  "title": "LV016-Output目录文件",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/dev-tool/keil/126b091384f9220a0ff9cf1d",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "a0ff9cf1dff34a1790997424e34bac30",
                    "useduuid": "a0ff9cf1d"
                  }
                }
              },
              {
                "title": "LV017-Listing目录文件",
                "url": "/sdoc/dev-tool/keil/126b0913865605b5493dc70e.html",
                "frontmatter": {
                  "title": "LV017-Listing目录文件",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/dev-tool/keil/126b0913865605b5493dc70e",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "5493dc70ee6849e0b32a91f39d8e2488",
                    "useduuid": "5493dc70e"
                  }
                }
              },
              {
                "title": "LV020-SCT分散加载文件",
                "url": "/sdoc/dev-tool/keil/126b08e6cfb5032dbc05b46a.html",
                "frontmatter": {
                  "title": "LV020-SCT分散加载文件",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/dev-tool/keil/126b08e6cfb5032dbc05b46a",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "dbc05b46abca47d8a176762f5148dc50",
                    "useduuid": "dbc05b46a"
                  }
                }
              },
              {
                "title": "LV025-SCT文件应用",
                "url": "/sdoc/dev-tool/keil/126b08e6d335070a7fd1934d.html",
                "frontmatter": {
                  "title": "LV025-SCT文件应用",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/dev-tool/keil/126b08e6d335070a7fd1934d",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "a7fd1934dbcb4eef93f57d3dce4e0059",
                    "useduuid": "a7fd1934d"
                  }
                }
              },
              {
                "title": "LV040-在线调试",
                "url": "/sdoc/dev-tool/keil/126b08e76d70287e70afead6.html",
                "frontmatter": {
                  "title": "LV040-在线调试",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/dev-tool/keil/126b08e76d70287e70afead6",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "e70afead6dd14692ad3b3749eb2cad4d",
                    "useduuid": "e70afead6"
                  }
                }
              }
            ],
            "frontmatter": {}
          },
          {
            "title": "02-STM32Cube",
            "children": [
              {
                "title": "LV001-STM32CubeMX简介",
                "url": "/sdoc/dev-tool/stm32cube/126b08aa58bc0838d250f7bd.html",
                "frontmatter": {
                  "title": "LV001-STM32CubeMX简介",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/dev-tool/stm32cube/126b08aa58bc0838d250f7bd",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "8d250f7bdb9d4b4fb822b135635cdf20",
                    "useduuid": "8d250f7bd"
                  }
                }
              },
              {
                "title": "LV002-STM32CubeMX工程创建",
                "url": "/sdoc/dev-tool/stm32cube/126b08aaf7c11b6e19f8d60a.html",
                "frontmatter": {
                  "title": "LV002-STM32CubeMX工程创建",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/dev-tool/stm32cube/126b08aaf7c11b6e19f8d60a",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "e19f8d60a0f64d51a22bc5a8a04bf26f",
                    "useduuid": "e19f8d60a"
                  }
                }
              },
              {
                "title": "LV010-Makefile管理工程",
                "url": "/sdoc/dev-tool/stm32cube/126b08e6edcf211c7df7916d.html",
                "frontmatter": {
                  "title": "LV010-Makefile管理工程",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/dev-tool/stm32cube/126b08e6edcf211c7df7916d",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "c7df7916d51c40f295ec8bdf0e20a228",
                    "useduuid": "c7df7916d"
                  }
                }
              },
              {
                "title": "LV012-Makefile文件分析",
                "url": "/sdoc/dev-tool/stm32cube/126b08e6ef7626b7c442bfe2.html",
                "frontmatter": {
                  "title": "LV012-Makefile文件分析",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/dev-tool/stm32cube/126b08e6ef7626b7c442bfe2",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "7c442bfe2f7348608819bf852cebb54e",
                    "useduuid": "7c442bfe2"
                  }
                }
              },
              {
                "title": "LV040-LD链接脚本",
                "url": "/sdoc/dev-tool/keil/126b08e6f2e40a653e71bc02.html",
                "frontmatter": {
                  "title": "LV040-LD链接脚本",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/dev-tool/keil/126b08e6f2e40a653e71bc02",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "53e71bc02dd346aeac5749700b205317",
                    "useduuid": "53e71bc02"
                  }
                }
              },
              {
                "title": "LV030-STM32CubeIDE",
                "url": "/sdoc/dev-tool/stm32cube/126b08e6f0211b46eabe9106.html",
                "frontmatter": {
                  "title": "LV030-STM32CubeIDE",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/dev-tool/stm32cube/126b08e6f0211b46eabe9106",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "6eabe9106e39465d81b7853e19f74deb",
                    "useduuid": "6eabe9106"
                  }
                }
              }
            ],
            "frontmatter": {}
          },
          {
            "title": "10-下载与调试",
            "children": [
              {
                "title": "LV001-下载与调试概述",
                "url": "/sdoc/dev-tool/burn-and-debug/126b08ab16fa3e011692369d.html",
                "frontmatter": {
                  "title": "LV001-下载与调试概述",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/dev-tool/burn-and-debug/126b08ab16fa3e011692369d",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "11692369dc744332bc6f2569dd8ec58a",
                    "useduuid": "11692369d"
                  }
                }
              },
              {
                "title": "LV002-JLink怎么使用",
                "url": "/sdoc/dev-tool/burn-and-debug/126b08ab15ee0921c4f7fd64.html",
                "frontmatter": {
                  "title": "LV002-JLink怎么使用",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/dev-tool/burn-and-debug/126b08ab15ee0921c4f7fd64",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "1c4f7fd64909407cb589ad3348a0c376",
                    "useduuid": "1c4f7fd64"
                  }
                }
              },
              {
                "title": "LV010-JFlash简介",
                "url": "/sdoc/dev-tool/burn-and-debug/126b08b7f6ce25a6c770f3b5.html",
                "frontmatter": {
                  "title": "LV010-JFlash简介",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/dev-tool/burn-and-debug/126b08b7f6ce25a6c770f3b5",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "6c770f3b50d84d7fad7f77bc05f872fc",
                    "useduuid": "6c770f3b5"
                  }
                }
              },
              {
                "title": "LV015-STLink怎么使用",
                "url": "/sdoc/dev-tool/burn-and-debug/126b08b9c98b11187c20e13a.html",
                "frontmatter": {
                  "title": "LV015-STLink怎么使用",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/dev-tool/burn-and-debug/126b08b9c98b11187c20e13a",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "87c20e13a48a44dfb380f22a1b102e34",
                    "useduuid": "87c20e13a"
                  }
                }
              },
              {
                "title": "LV020-ST-LINK-Utility简介",
                "url": "/sdoc/dev-tool/burn-and-debug/126b08b9cb90276fafba387f.html",
                "frontmatter": {
                  "title": "LV020-ST-LINK-Utility简介",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/dev-tool/burn-and-debug/126b08b9cb90276fafba387f",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "fafba387f5f84aab849e4d8b464e22ad",
                    "useduuid": "fafba387f"
                  }
                }
              },
              {
                "title": "LV030-串口下载",
                "url": "/sdoc/dev-tool/burn-and-debug/126b08b9cea618afd74b243b.html",
                "frontmatter": {
                  "title": "LV030-串口下载",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/dev-tool/burn-and-debug/126b08b9cea618afd74b243b",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "fd74b243b22149fe9c55a56a7b50b6d5",
                    "useduuid": "fd74b243b"
                  }
                }
              }
            ],
            "frontmatter": {}
          }
        ]
      },
      "sdoc/10-基础篇/01-概述": {
        "url": "sdoc/basic/overview/126b08ba0e6d394d4eb563f9.html",
        "filePath": "sdoc/10-基础篇/01-概述/index",
        "catalogues": [
          {
            "title": "LV001-ARM体系结构",
            "url": "/sdoc/basic/overview/126b08ba0eae364f31526d00.html",
            "frontmatter": {
              "title": "LV001-ARM体系结构",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/basic/overview/126b08ba0eae364f31526d00",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "f31526d004e841cf942bb1c43e30f261",
                "useduuid": "f31526d00"
              }
            }
          },
          {
            "title": "LV010-常见存储器",
            "url": "/sdoc/basic/overview/126b08ba13b3329986816cf4.html",
            "frontmatter": {
              "title": "LV010-常见存储器",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/basic/overview/126b08ba13b3329986816cf4",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "986816cf43ae496ea97f2ac2344cf4bc",
                "useduuid": "986816cf4"
              }
            }
          },
          {
            "title": "LV020-CortexM0简介",
            "url": "/sdoc/basic/overview/126b08c738bc16b5b982661d.html",
            "frontmatter": {
              "title": "LV020-CortexM0简介",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/basic/overview/126b08c738bc16b5b982661d",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "5b982661dbf54e3db91954b53e220c58",
                "useduuid": "5b982661d"
              }
            }
          },
          {
            "title": "LV022-CortexM0存储器映射",
            "url": "/sdoc/basic/overview/126b08e6a7051c291c1151a6.html",
            "frontmatter": {
              "title": "LV022-CortexM0存储器映射",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/basic/overview/126b08e6a7051c291c1151a6",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "91c1151a6b3c4a07b26e0383912b8543",
                "useduuid": "91c1151a6"
              }
            }
          },
          {
            "title": "LV030-CortexM3简介",
            "url": "/sdoc/basic/overview/126b08c73a222946645cba90.html",
            "frontmatter": {
              "title": "LV030-CortexM3简介",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/basic/overview/126b08c73a222946645cba90",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "6645cba90f414432ac823c9d1938fc37",
                "useduuid": "6645cba90"
              }
            }
          },
          {
            "title": "LV035-CortexM3存储器系统",
            "url": "/sdoc/basic/overview/126b08c73d361161792b640a.html",
            "frontmatter": {
              "title": "LV035-CortexM3存储器系统",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/basic/overview/126b08c73d361161792b640a",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "1792b640ad2b40c1a34cc0ea4da24ed9",
                "useduuid": "1792b640a"
              }
            }
          },
          {
            "title": "LV040-CortexM3异常",
            "url": "/sdoc/basic/overview/126b08e5d7b911b28ed9ee4c.html",
            "frontmatter": {
              "title": "LV040-CortexM3异常",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/basic/overview/126b08e5d7b911b28ed9ee4c",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "28ed9ee4c4ee4374a05b403be9d08519",
                "useduuid": "28ed9ee4c"
              }
            }
          },
          {
            "title": "LV040-CortexM3的NVIC中断控制",
            "url": "/sdoc/basic/overview/126b08e5fb5429a0009ffc8b.html",
            "frontmatter": {
              "title": "LV040-CortexM3的NVIC中断控制",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/basic/overview/126b08e5fb5429a0009ffc8b",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "0009ffc8b07a4e459a29f0ba0518592b",
                "useduuid": "0009ffc8b"
              }
            }
          }
        ]
      },
      "sdoc/10-基础篇/10-STM32基础": {
        "url": "sdoc/basic/stm32basic/126b08e5fe7229fef4ddea37.html",
        "filePath": "sdoc/10-基础篇/10-STM32基础/index",
        "catalogues": [
          {
            "title": "LV001-STM32概述",
            "url": "/sdoc/basic/stm32basic/126b08e5feaa2043ad05a48e.html",
            "frontmatter": {
              "title": "LV001-STM32概述",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/basic/stm32basic/126b08e5feaa2043ad05a48e",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "3ad05a48eac840679287e1b2301b039a",
                "useduuid": "3ad05a48e"
              }
            }
          },
          {
            "title": "LV010-嵌入式C语言",
            "url": "/sdoc/basic/stm32basic/126b08e600543a33cc0a657a.html",
            "frontmatter": {
              "title": "LV010-嵌入式C语言",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/basic/stm32basic/126b08e600543a33cc0a657a",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "3cc0a657a05d403785cc85fa30a99505",
                "useduuid": "3cc0a657a"
              }
            }
          },
          {
            "title": "LV020-STM32怎么开发",
            "url": "/sdoc/basic/stm32basic/126b08e603011c2e21862cc6.html",
            "frontmatter": {
              "title": "LV020-STM32怎么开发",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/basic/stm32basic/126b08e603011c2e21862cc6",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "e21862cc6b54423c827258b8732bcdd8",
                "useduuid": "e21862cc6"
              }
            }
          },
          {
            "title": "LV021-认识HAL库",
            "url": "/sdoc/basic/stm32basic/126b08e608d01035e7260fce.html",
            "frontmatter": {
              "title": "LV021-认识HAL库",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/basic/stm32basic/126b08e608d01035e7260fce",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "5e7260fce3184ab293e2a218bc58687b",
                "useduuid": "5e7260fce"
              }
            }
          },
          {
            "title": "LV030-STM32程序下载",
            "url": "/sdoc/basic/stm32basic/126b08e7828f108bc0b2f2dc.html",
            "frontmatter": {
              "title": "LV030-STM32程序下载",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/basic/stm32basic/126b08e7828f108bc0b2f2dc",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "bc0b2f2dc98042cb8e44dc7aa1995faa",
                "useduuid": "bc0b2f2dc"
              }
            }
          },
          {
            "title": "LV040-STM32系统架构",
            "url": "/sdoc/basic/stm32basic/126b08e6831f0a0031c3f015.html",
            "frontmatter": {
              "title": "LV040-STM32系统架构",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/basic/stm32basic/126b08e6831f0a0031c3f015",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "031c3f0159bd41bfa7f2e89f6b50e340",
                "useduuid": "031c3f015"
              }
            }
          },
          {
            "title": "LV045-STM32存储器系统",
            "url": "/sdoc/basic/stm32basic/126b08e6840f3457e72c8780.html",
            "frontmatter": {
              "title": "LV045-STM32存储器系统",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/basic/stm32basic/126b08e6840f3457e72c8780",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "7e72c87803ee4322bcd1072590f70cb3",
                "useduuid": "7e72c8780"
              }
            }
          },
          {
            "title": "LV050-STM32地址重映射",
            "url": "/sdoc/basic/stm32basic/126b08e6a53918eab18839bd.html",
            "frontmatter": {
              "title": "LV050-STM32地址重映射",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/basic/stm32basic/126b08e6a53918eab18839bd",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "ab18839bd52b440b9ca51fa34ea3d714",
                "useduuid": "ab18839bd"
              }
            }
          }
        ]
      },
      "sdoc/10-基础篇/20-STM32的启动": {
        "url": "sdoc/basic/stm32setup/126b08e788d3105084b556cd.html",
        "filePath": "sdoc/10-基础篇/20-STM32的启动/index",
        "catalogues": [
          {
            "title": "LV001-启动文件",
            "url": "/sdoc/basic/stm32setup/126b08e788e83383285742cb.html",
            "frontmatter": {
              "title": "LV001-启动文件",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/basic/stm32setup/126b08e788e83383285742cb",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "3285742cb8d24fba98867646d8e8231b",
                "useduuid": "3285742cb"
              }
            }
          },
          {
            "title": "LV005-启动过程",
            "url": "/sdoc/basic/stm32setup/126b08e78de70b59cd9ba362.html",
            "frontmatter": {
              "title": "LV005-启动过程",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/basic/stm32setup/126b08e78de70b59cd9ba362",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "9cd9ba36208d49f99352645293a0d904",
                "useduuid": "9cd9ba362"
              }
            }
          },
          {
            "title": "LV010-在内部SRAM调试",
            "url": "/sdoc/basic/stm32setup/126b08e7afad049a561ccf1b.html",
            "frontmatter": {
              "title": "LV010-在内部SRAM调试",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/basic/stm32setup/126b08e7afad049a561ccf1b",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "a561ccf1b5d3443c85b0f21280803c3a",
                "useduuid": "a561ccf1b"
              }
            }
          }
        ]
      },
      "sdoc/10-基础篇/30-STM32的中断": {
        "url": "sdoc/basic/stm32interrupt/126b08f5722f25a054f0a4aa.html",
        "filePath": "sdoc/10-基础篇/30-STM32的中断/index",
        "catalogues": [
          {
            "title": "LV001-STM32中断简介",
            "url": "/sdoc/basic/stm32interrupt/126b08f57241322fa604782d.html",
            "frontmatter": {
              "title": "LV001-STM32中断简介",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/basic/stm32interrupt/126b08f57241322fa604782d",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "fa604782d9e94117829d0f1a00c0d99d",
                "useduuid": "fa604782d"
              }
            }
          }
        ]
      },
      "sdoc/10-基础篇/40-STM32时钟": {
        "url": "sdoc/basic/stm32clock/126b08f5d87c1eab6c3871dc.html",
        "filePath": "sdoc/10-基础篇/40-STM32时钟/index",
        "catalogues": [
          {
            "title": "LV001-STM32F1时钟系统",
            "url": "/sdoc/basic/stm32clock/126b08f5d89727a6ee395582.html",
            "frontmatter": {
              "title": "LV001-STM32F1时钟系统",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/basic/stm32clock/126b08f5d89727a6ee395582",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "6ee395582b8f401e806f3f6b8aac7e4a",
                "useduuid": "6ee395582"
              }
            }
          },
          {
            "title": "LV010-STM32F1的SYSCLK",
            "url": "/sdoc/basic/stm32clock/126b08f5dcd1392ef8558043.html",
            "frontmatter": {
              "title": "LV010-STM32F1的SYSCLK",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/basic/stm32clock/126b08f5dcd1392ef8558043",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "ef8558043211434e9696dd7586e40951",
                "useduuid": "ef8558043"
              }
            }
          }
        ]
      },
      "sdoc/10-基础篇/50-STM32内部FLASH": {
        "url": "sdoc/basic/stm32flash/126b093451ee0b11abb28aa5.html",
        "filePath": "sdoc/10-基础篇/50-STM32内部FLASH/index",
        "catalogues": [
          {
            "title": "LV001-内部FLASH简介",
            "url": "/sdoc/basic/stm32flash/126b09345207167f3ed95339.html",
            "frontmatter": {
              "title": "LV001-内部FLASH简介",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/basic/stm32flash/126b09345207167f3ed95339",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "f3ed95339a054335bd7861fbbdfca984",
                "useduuid": "f3ed95339"
              }
            }
          },
          {
            "title": "LV010-FLASH操作流程",
            "url": "/sdoc/basic/stm32flash/126b0934555e1e98aa9081c5.html",
            "frontmatter": {
              "title": "LV010-FLASH操作流程",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/basic/stm32flash/126b0934555e1e98aa9081c5",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "8aa9081c5bfb4658bc14302518ab96b3",
                "useduuid": "8aa9081c5"
              }
            }
          },
          {
            "title": "LV020-IAP编程简介",
            "url": "/sdoc/basic/stm32flash/126b0e26745a3124f27972bd.html",
            "frontmatter": {
              "title": "LV020-IAP编程简介",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/basic/stm32flash/126b0e26745a3124f27972bd",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "4f27972bd3fc4860b4605d3ba9d93bb7",
                "useduuid": "4f27972bd"
              }
            }
          },
          {
            "title": "LV025-IAP编程实现",
            "url": "/sdoc/basic/stm32flash/126b0e4540061175c7584cc2.html",
            "frontmatter": {
              "title": "LV025-IAP编程实现",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/basic/stm32flash/126b0e4540061175c7584cc2",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "5c7584cc23ea451aaa122d51f3053c7c",
                "useduuid": "5c7584cc2"
              }
            }
          }
        ]
      },
      "sdoc/10-基础篇/60-STM32的内存": {
        "url": "sdoc/basic/stm32memory/126b094142e21f978c1c589e.html",
        "filePath": "sdoc/10-基础篇/60-STM32的内存/index",
        "catalogues": [
          {
            "title": "LV001-STM32内存简介",
            "url": "/sdoc/basic/stm32memory/126b0941431c016e4bdd2a68.html",
            "frontmatter": {
              "title": "LV001-STM32内存简介",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/basic/stm32memory/126b0941431c016e4bdd2a68",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "e4bdd2a68030419b91dea7af452724aa",
                "useduuid": "e4bdd2a68"
              }
            }
          },
          {
            "title": "LV010-内存管理",
            "url": "/sdoc/basic/stm32memory/126b0e24d5e326e3a7296e85.html",
            "frontmatter": {
              "title": "LV010-内存管理",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/basic/stm32memory/126b0e24d5e326e3a7296e85",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "3a7296e85ae54af393dd0790947698ce",
                "useduuid": "3a7296e85"
              }
            }
          }
        ]
      },
      "sdoc/10-基础篇/70-STM32电源管理": {
        "url": "sdoc/basic/stm32pwr/126b09513f0a17a9a28ea1f0.html",
        "filePath": "sdoc/10-基础篇/70-STM32电源管理/index",
        "catalogues": [
          {
            "title": "LV001-电源管理简介",
            "url": "/sdoc/basic/stm32pwr/126b09513f17393c50358806.html",
            "frontmatter": {
              "title": "LV001-电源管理简介",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/basic/stm32pwr/126b09513f17393c50358806",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "c503588060cf485a965221f48977e91d",
                "useduuid": "c50358806"
              }
            }
          },
          {
            "title": "LV010-三种模式实现",
            "url": "/sdoc/basic/stm32pwr/126b095140443bc89b1ebe84.html",
            "frontmatter": {
              "title": "LV010-三种模式实现",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/basic/stm32pwr/126b095140443bc89b1ebe84",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "89b1ebe841074780aa0a2abaac3caa24",
                "useduuid": "89b1ebe84"
              }
            }
          }
        ]
      },
      "sdoc/10-基础篇": {
        "url": "sdoc/basic/126b08ba0be902f861c0b265.html",
        "filePath": "sdoc/10-基础篇/index",
        "catalogues": [
          {
            "title": "01-概述",
            "children": [
              {
                "title": "LV001-ARM体系结构",
                "url": "/sdoc/basic/overview/126b08ba0eae364f31526d00.html",
                "frontmatter": {
                  "title": "LV001-ARM体系结构",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/basic/overview/126b08ba0eae364f31526d00",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "f31526d004e841cf942bb1c43e30f261",
                    "useduuid": "f31526d00"
                  }
                }
              },
              {
                "title": "LV010-常见存储器",
                "url": "/sdoc/basic/overview/126b08ba13b3329986816cf4.html",
                "frontmatter": {
                  "title": "LV010-常见存储器",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/basic/overview/126b08ba13b3329986816cf4",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "986816cf43ae496ea97f2ac2344cf4bc",
                    "useduuid": "986816cf4"
                  }
                }
              },
              {
                "title": "LV020-CortexM0简介",
                "url": "/sdoc/basic/overview/126b08c738bc16b5b982661d.html",
                "frontmatter": {
                  "title": "LV020-CortexM0简介",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/basic/overview/126b08c738bc16b5b982661d",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "5b982661dbf54e3db91954b53e220c58",
                    "useduuid": "5b982661d"
                  }
                }
              },
              {
                "title": "LV022-CortexM0存储器映射",
                "url": "/sdoc/basic/overview/126b08e6a7051c291c1151a6.html",
                "frontmatter": {
                  "title": "LV022-CortexM0存储器映射",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/basic/overview/126b08e6a7051c291c1151a6",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "91c1151a6b3c4a07b26e0383912b8543",
                    "useduuid": "91c1151a6"
                  }
                }
              },
              {
                "title": "LV030-CortexM3简介",
                "url": "/sdoc/basic/overview/126b08c73a222946645cba90.html",
                "frontmatter": {
                  "title": "LV030-CortexM3简介",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/basic/overview/126b08c73a222946645cba90",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "6645cba90f414432ac823c9d1938fc37",
                    "useduuid": "6645cba90"
                  }
                }
              },
              {
                "title": "LV035-CortexM3存储器系统",
                "url": "/sdoc/basic/overview/126b08c73d361161792b640a.html",
                "frontmatter": {
                  "title": "LV035-CortexM3存储器系统",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/basic/overview/126b08c73d361161792b640a",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "1792b640ad2b40c1a34cc0ea4da24ed9",
                    "useduuid": "1792b640a"
                  }
                }
              },
              {
                "title": "LV040-CortexM3异常",
                "url": "/sdoc/basic/overview/126b08e5d7b911b28ed9ee4c.html",
                "frontmatter": {
                  "title": "LV040-CortexM3异常",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/basic/overview/126b08e5d7b911b28ed9ee4c",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "28ed9ee4c4ee4374a05b403be9d08519",
                    "useduuid": "28ed9ee4c"
                  }
                }
              },
              {
                "title": "LV040-CortexM3的NVIC中断控制",
                "url": "/sdoc/basic/overview/126b08e5fb5429a0009ffc8b.html",
                "frontmatter": {
                  "title": "LV040-CortexM3的NVIC中断控制",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/basic/overview/126b08e5fb5429a0009ffc8b",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "0009ffc8b07a4e459a29f0ba0518592b",
                    "useduuid": "0009ffc8b"
                  }
                }
              }
            ],
            "frontmatter": {}
          },
          {
            "title": "10-STM32基础",
            "children": [
              {
                "title": "LV001-STM32概述",
                "url": "/sdoc/basic/stm32basic/126b08e5feaa2043ad05a48e.html",
                "frontmatter": {
                  "title": "LV001-STM32概述",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/basic/stm32basic/126b08e5feaa2043ad05a48e",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "3ad05a48eac840679287e1b2301b039a",
                    "useduuid": "3ad05a48e"
                  }
                }
              },
              {
                "title": "LV010-嵌入式C语言",
                "url": "/sdoc/basic/stm32basic/126b08e600543a33cc0a657a.html",
                "frontmatter": {
                  "title": "LV010-嵌入式C语言",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/basic/stm32basic/126b08e600543a33cc0a657a",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "3cc0a657a05d403785cc85fa30a99505",
                    "useduuid": "3cc0a657a"
                  }
                }
              },
              {
                "title": "LV020-STM32怎么开发",
                "url": "/sdoc/basic/stm32basic/126b08e603011c2e21862cc6.html",
                "frontmatter": {
                  "title": "LV020-STM32怎么开发",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/basic/stm32basic/126b08e603011c2e21862cc6",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "e21862cc6b54423c827258b8732bcdd8",
                    "useduuid": "e21862cc6"
                  }
                }
              },
              {
                "title": "LV021-认识HAL库",
                "url": "/sdoc/basic/stm32basic/126b08e608d01035e7260fce.html",
                "frontmatter": {
                  "title": "LV021-认识HAL库",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/basic/stm32basic/126b08e608d01035e7260fce",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "5e7260fce3184ab293e2a218bc58687b",
                    "useduuid": "5e7260fce"
                  }
                }
              },
              {
                "title": "LV030-STM32程序下载",
                "url": "/sdoc/basic/stm32basic/126b08e7828f108bc0b2f2dc.html",
                "frontmatter": {
                  "title": "LV030-STM32程序下载",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/basic/stm32basic/126b08e7828f108bc0b2f2dc",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "bc0b2f2dc98042cb8e44dc7aa1995faa",
                    "useduuid": "bc0b2f2dc"
                  }
                }
              },
              {
                "title": "LV040-STM32系统架构",
                "url": "/sdoc/basic/stm32basic/126b08e6831f0a0031c3f015.html",
                "frontmatter": {
                  "title": "LV040-STM32系统架构",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/basic/stm32basic/126b08e6831f0a0031c3f015",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "031c3f0159bd41bfa7f2e89f6b50e340",
                    "useduuid": "031c3f015"
                  }
                }
              },
              {
                "title": "LV045-STM32存储器系统",
                "url": "/sdoc/basic/stm32basic/126b08e6840f3457e72c8780.html",
                "frontmatter": {
                  "title": "LV045-STM32存储器系统",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/basic/stm32basic/126b08e6840f3457e72c8780",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "7e72c87803ee4322bcd1072590f70cb3",
                    "useduuid": "7e72c8780"
                  }
                }
              },
              {
                "title": "LV050-STM32地址重映射",
                "url": "/sdoc/basic/stm32basic/126b08e6a53918eab18839bd.html",
                "frontmatter": {
                  "title": "LV050-STM32地址重映射",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/basic/stm32basic/126b08e6a53918eab18839bd",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "ab18839bd52b440b9ca51fa34ea3d714",
                    "useduuid": "ab18839bd"
                  }
                }
              }
            ],
            "frontmatter": {}
          },
          {
            "title": "20-STM32的启动",
            "children": [
              {
                "title": "LV001-启动文件",
                "url": "/sdoc/basic/stm32setup/126b08e788e83383285742cb.html",
                "frontmatter": {
                  "title": "LV001-启动文件",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/basic/stm32setup/126b08e788e83383285742cb",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "3285742cb8d24fba98867646d8e8231b",
                    "useduuid": "3285742cb"
                  }
                }
              },
              {
                "title": "LV005-启动过程",
                "url": "/sdoc/basic/stm32setup/126b08e78de70b59cd9ba362.html",
                "frontmatter": {
                  "title": "LV005-启动过程",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/basic/stm32setup/126b08e78de70b59cd9ba362",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "9cd9ba36208d49f99352645293a0d904",
                    "useduuid": "9cd9ba362"
                  }
                }
              },
              {
                "title": "LV010-在内部SRAM调试",
                "url": "/sdoc/basic/stm32setup/126b08e7afad049a561ccf1b.html",
                "frontmatter": {
                  "title": "LV010-在内部SRAM调试",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/basic/stm32setup/126b08e7afad049a561ccf1b",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "a561ccf1b5d3443c85b0f21280803c3a",
                    "useduuid": "a561ccf1b"
                  }
                }
              }
            ],
            "frontmatter": {}
          },
          {
            "title": "30-STM32的中断",
            "children": [
              {
                "title": "LV001-STM32中断简介",
                "url": "/sdoc/basic/stm32interrupt/126b08f57241322fa604782d.html",
                "frontmatter": {
                  "title": "LV001-STM32中断简介",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/basic/stm32interrupt/126b08f57241322fa604782d",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "fa604782d9e94117829d0f1a00c0d99d",
                    "useduuid": "fa604782d"
                  }
                }
              }
            ],
            "frontmatter": {}
          },
          {
            "title": "40-STM32时钟",
            "children": [
              {
                "title": "LV001-STM32F1时钟系统",
                "url": "/sdoc/basic/stm32clock/126b08f5d89727a6ee395582.html",
                "frontmatter": {
                  "title": "LV001-STM32F1时钟系统",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/basic/stm32clock/126b08f5d89727a6ee395582",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "6ee395582b8f401e806f3f6b8aac7e4a",
                    "useduuid": "6ee395582"
                  }
                }
              },
              {
                "title": "LV010-STM32F1的SYSCLK",
                "url": "/sdoc/basic/stm32clock/126b08f5dcd1392ef8558043.html",
                "frontmatter": {
                  "title": "LV010-STM32F1的SYSCLK",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/basic/stm32clock/126b08f5dcd1392ef8558043",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "ef8558043211434e9696dd7586e40951",
                    "useduuid": "ef8558043"
                  }
                }
              }
            ],
            "frontmatter": {}
          },
          {
            "title": "50-STM32内部FLASH",
            "children": [
              {
                "title": "LV001-内部FLASH简介",
                "url": "/sdoc/basic/stm32flash/126b09345207167f3ed95339.html",
                "frontmatter": {
                  "title": "LV001-内部FLASH简介",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/basic/stm32flash/126b09345207167f3ed95339",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "f3ed95339a054335bd7861fbbdfca984",
                    "useduuid": "f3ed95339"
                  }
                }
              },
              {
                "title": "LV010-FLASH操作流程",
                "url": "/sdoc/basic/stm32flash/126b0934555e1e98aa9081c5.html",
                "frontmatter": {
                  "title": "LV010-FLASH操作流程",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/basic/stm32flash/126b0934555e1e98aa9081c5",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "8aa9081c5bfb4658bc14302518ab96b3",
                    "useduuid": "8aa9081c5"
                  }
                }
              },
              {
                "title": "LV020-IAP编程简介",
                "url": "/sdoc/basic/stm32flash/126b0e26745a3124f27972bd.html",
                "frontmatter": {
                  "title": "LV020-IAP编程简介",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/basic/stm32flash/126b0e26745a3124f27972bd",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "4f27972bd3fc4860b4605d3ba9d93bb7",
                    "useduuid": "4f27972bd"
                  }
                }
              },
              {
                "title": "LV025-IAP编程实现",
                "url": "/sdoc/basic/stm32flash/126b0e4540061175c7584cc2.html",
                "frontmatter": {
                  "title": "LV025-IAP编程实现",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/basic/stm32flash/126b0e4540061175c7584cc2",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "5c7584cc23ea451aaa122d51f3053c7c",
                    "useduuid": "5c7584cc2"
                  }
                }
              }
            ],
            "frontmatter": {}
          },
          {
            "title": "60-STM32的内存",
            "children": [
              {
                "title": "LV001-STM32内存简介",
                "url": "/sdoc/basic/stm32memory/126b0941431c016e4bdd2a68.html",
                "frontmatter": {
                  "title": "LV001-STM32内存简介",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/basic/stm32memory/126b0941431c016e4bdd2a68",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "e4bdd2a68030419b91dea7af452724aa",
                    "useduuid": "e4bdd2a68"
                  }
                }
              },
              {
                "title": "LV010-内存管理",
                "url": "/sdoc/basic/stm32memory/126b0e24d5e326e3a7296e85.html",
                "frontmatter": {
                  "title": "LV010-内存管理",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/basic/stm32memory/126b0e24d5e326e3a7296e85",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "3a7296e85ae54af393dd0790947698ce",
                    "useduuid": "3a7296e85"
                  }
                }
              }
            ],
            "frontmatter": {}
          },
          {
            "title": "70-STM32电源管理",
            "children": [
              {
                "title": "LV001-电源管理简介",
                "url": "/sdoc/basic/stm32pwr/126b09513f17393c50358806.html",
                "frontmatter": {
                  "title": "LV001-电源管理简介",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/basic/stm32pwr/126b09513f17393c50358806",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "c503588060cf485a965221f48977e91d",
                    "useduuid": "c50358806"
                  }
                }
              },
              {
                "title": "LV010-三种模式实现",
                "url": "/sdoc/basic/stm32pwr/126b095140443bc89b1ebe84.html",
                "frontmatter": {
                  "title": "LV010-三种模式实现",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/basic/stm32pwr/126b095140443bc89b1ebe84",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "89b1ebe841074780aa0a2abaac3caa24",
                    "useduuid": "89b1ebe84"
                  }
                }
              }
            ],
            "frontmatter": {}
          }
        ]
      },
      "sdoc/20-基本外设篇/01-GPIO": {
        "url": "sdoc/peripheral/gpio/126b08e802bd2a57f9711bf1.html",
        "filePath": "sdoc/20-基本外设篇/01-GPIO/index",
        "catalogues": [
          {
            "title": "LV001-STM32的GPIO简介",
            "url": "/sdoc/peripheral/gpio/126b08e802d21f6e4f658296.html",
            "frontmatter": {
              "title": "LV001-STM32的GPIO简介",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/peripheral/gpio/126b08e802d21f6e4f658296",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "e4f658296d8f440694a80e81f31777d4",
                "useduuid": "e4f658296"
              }
            }
          },
          {
            "title": "LV010-输入输出模式详解",
            "url": "/sdoc/peripheral/gpio/126b08e804d303ad5b541ecd.html",
            "frontmatter": {
              "title": "LV010-输入输出模式详解",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/peripheral/gpio/126b08e804d303ad5b541ecd",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "d5b541ecde0f4e1799e17d09e88a33fa",
                "useduuid": "d5b541ecd"
              }
            }
          },
          {
            "title": "LV020-GPIO控制LED",
            "url": "/sdoc/peripheral/gpio/126b08e805ca1e15c40474c4.html",
            "frontmatter": {
              "title": "LV020-GPIO控制LED",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/peripheral/gpio/126b08e805ca1e15c40474c4",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "5c40474c47fc44e49114f4489f7fb359",
                "useduuid": "5c40474c4"
              }
            }
          },
          {
            "title": "LV030-按键检测",
            "url": "/sdoc/peripheral/gpio/126b08e8078f1f2b7ad1d6a6.html",
            "frontmatter": {
              "title": "LV030-按键检测",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/peripheral/gpio/126b08e8078f1f2b7ad1d6a6",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "b7ad1d6a65df41fab1ae6bd4b2de28b9",
                "useduuid": "b7ad1d6a6"
              }
            }
          },
          {
            "title": "LV040-外部中断",
            "url": "/sdoc/peripheral/gpio/126b08f58a5c2c09e1d6100f.html",
            "frontmatter": {
              "title": "LV040-外部中断",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/peripheral/gpio/126b08f58a5c2c09e1d6100f",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "9e1d6100f7d74737974bd9674a8ba8c0",
                "useduuid": "9e1d6100f"
              }
            }
          },
          {
            "title": "LV045-外部中断实例",
            "url": "/sdoc/peripheral/gpio/126b08f596281cc89a3bc4c6.html",
            "frontmatter": {
              "title": "LV045-外部中断实例",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/peripheral/gpio/126b08f596281cc89a3bc4c6",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "89a3bc4c6a9b4249afce4152ca5d1241",
                "useduuid": "89a3bc4c6"
              }
            }
          }
        ]
      },
      "sdoc/20-基本外设篇/10-UART": {
        "url": "sdoc/peripheral/uart/126b08f60e8936153c897e51.html",
        "filePath": "sdoc/20-基本外设篇/10-UART/index",
        "catalogues": [
          {
            "title": "LV001-串口通信简介",
            "url": "/sdoc/peripheral/uart/126b08f60edb3b6ac7962cbf.html",
            "frontmatter": {
              "title": "LV001-串口通信简介",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/peripheral/uart/126b08f60edb3b6ac7962cbf",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "ac7962cbf7d245659539f5436bb59e37",
                "useduuid": "ac7962cbf"
              }
            }
          },
          {
            "title": "LV010-STM32的串口",
            "url": "/sdoc/peripheral/uart/126b08f6146d2d238b102738.html",
            "frontmatter": {
              "title": "LV010-STM32的串口",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/peripheral/uart/126b08f6146d2d238b102738",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "38b1027380d146cb959e571687931c97",
                "useduuid": "38b102738"
              }
            }
          },
          {
            "title": "LV020-串口收发实例",
            "url": "/sdoc/peripheral/uart/126b08f61664097f4a0617fc.html",
            "frontmatter": {
              "title": "LV020-串口收发实例",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/peripheral/uart/126b08f61664097f4a0617fc",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "f4a0617fc94447a8962e262d9db98842",
                "useduuid": "f4a0617fc"
              }
            }
          }
        ]
      },
      "sdoc/20-基本外设篇/15-定时器": {
        "url": "sdoc/peripheral/timer/126b08f6a16a27128730debb.html",
        "filePath": "sdoc/20-基本外设篇/15-定时器/index",
        "catalogues": [
          {
            "title": "LV001-基本定时器简介",
            "url": "/sdoc/peripheral/timer/basic/126b08f6a8e32e3427f3a2b2.html",
            "frontmatter": {
              "title": "LV001-基本定时器简介",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/peripheral/timer/basic/126b08f6a8e32e3427f3a2b2",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "427f3a2b26fc476299e1f6f52f2c33ad",
                "useduuid": "427f3a2b2"
              }
            }
          },
          {
            "title": "LV030-通用定时器简介",
            "url": "/sdoc/peripheral/timer/126b08f6aa441b536809798e.html",
            "frontmatter": {
              "title": "LV030-通用定时器简介",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/peripheral/timer/126b08f6aa441b536809798e",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "36809798e68046309b813b9706a23f8a",
                "useduuid": "36809798e"
              }
            }
          },
          {
            "title": "LV035-通用定时器的中断",
            "url": "/sdoc/peripheral/timer/126b08f6aa9f293ebbce26b2.html",
            "frontmatter": {
              "title": "LV035-通用定时器的中断",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/peripheral/timer/126b08f6aa9f293ebbce26b2",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "ebbce26b2eed4f0e8e7db13c33566c30",
                "useduuid": "ebbce26b2"
              }
            }
          },
          {
            "title": "LV040-通用定时器PWM输出",
            "url": "/sdoc/peripheral/timer/126b08f6aac20ab7bc66d777.html",
            "frontmatter": {
              "title": "LV040-通用定时器PWM输出",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/peripheral/timer/126b08f6aac20ab7bc66d777",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "7bc66d777a344e838bab8b97634f96bc",
                "useduuid": "7bc66d777"
              }
            }
          },
          {
            "title": "LV045-通用定时器输入捕获",
            "url": "/sdoc/peripheral/timer/126b08f6ab6404f5fdfb5648.html",
            "frontmatter": {
              "title": "LV045-通用定时器输入捕获",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/peripheral/timer/126b08f6ab6404f5fdfb5648",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "5fdfb5648d1542adb31bc692aaebfac4",
                "useduuid": "5fdfb5648"
              }
            }
          },
          {
            "title": "LV050-通用定时器脉冲计数",
            "url": "/sdoc/peripheral/timer/126b08f6ab873bc74e57e381.html",
            "frontmatter": {
              "title": "LV050-通用定时器脉冲计数",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/peripheral/timer/126b08f6ab873bc74e57e381",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "74e57e3815ac43a9b2ad64b853530fde",
                "useduuid": "74e57e381"
              }
            }
          },
          {
            "title": "LV070-高级定时器简介",
            "url": "/sdoc/peripheral/timer/126b08f6abf821065c6674f2.html",
            "frontmatter": {
              "title": "LV070-高级定时器简介",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/peripheral/timer/126b08f6abf821065c6674f2",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "65c6674f24194a5c905c5931e3b1bb25",
                "useduuid": "65c6674f2"
              }
            }
          },
          {
            "title": "LV075-高级定时器PWM输出",
            "url": "/sdoc/peripheral/timer/126b08f6ac4f2bb02b42403e.html",
            "frontmatter": {
              "title": "LV075-高级定时器PWM输出",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/peripheral/timer/126b08f6ac4f2bb02b42403e",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "02b42403e6334b1e88b3aefe535488bf",
                "useduuid": "02b42403e"
              }
            }
          },
          {
            "title": "LV080-高级定时器输出比较模式",
            "url": "/sdoc/peripheral/timer/126b08f6aca0253099c9ba29.html",
            "frontmatter": {
              "title": "LV080-高级定时器输出比较模式",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/peripheral/timer/126b08f6aca0253099c9ba29",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "099c9ba29781487ab77ef3977ecd7122",
                "useduuid": "099c9ba29"
              }
            }
          },
          {
            "title": "LV085-高级定时器互补输出",
            "url": "/sdoc/peripheral/timer/126b08f6ad8f2e0487d6c438.html",
            "frontmatter": {
              "title": "LV085-高级定时器互补输出",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/peripheral/timer/126b08f6ad8f2e0487d6c438",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "487d6c4384224a459898d149b83609e0",
                "useduuid": "487d6c438"
              }
            }
          },
          {
            "title": "LV090-高级定时器PWM输入",
            "url": "/sdoc/peripheral/timer/126b08f6ae2512a51a9eec42.html",
            "frontmatter": {
              "title": "LV090-高级定时器PWM输入",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/peripheral/timer/126b08f6ae2512a51a9eec42",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "51a9eec423e4412c99aa8247ccd2092d",
                "useduuid": "51a9eec42"
              }
            }
          },
          {
            "title": "LV100-SysTick定时器简介",
            "url": "/sdoc/peripheral/timer/126b08f7176d34627620ad1b.html",
            "frontmatter": {
              "title": "LV100-SysTick定时器简介",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/peripheral/timer/126b08f7176d34627620ad1b",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "27620ad1b6704f3ab64b6bc4d14b88f4",
                "useduuid": "27620ad1b"
              }
            }
          },
          {
            "title": "LV105-自定义延时函数",
            "url": "/sdoc/peripheral/timer/126b08f71bb31f61f9e3c819.html",
            "frontmatter": {
              "title": "LV105-自定义延时函数",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/peripheral/timer/126b08f71bb31f61f9e3c819",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "1f9e3c81978544cfa5b36e225514bb0d",
                "useduuid": "1f9e3c819"
              }
            }
          }
        ]
      },
      "sdoc/20-基本外设篇/20-看门狗": {
        "url": "sdoc/peripheral/watchdog/126b09043af80c9abdc4e3ef.html",
        "filePath": "sdoc/20-基本外设篇/20-看门狗/index",
        "catalogues": [
          {
            "title": "LV001-看门狗简介",
            "url": "/sdoc/peripheral/watchdog/126b09043ae916195cb39541.html",
            "frontmatter": {
              "title": "LV001-看门狗简介",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/peripheral/watchdog/126b09043ae916195cb39541",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "95cb3954118d49beb6d6912a9e3cb522",
                "useduuid": "95cb39541"
              }
            }
          },
          {
            "title": "LV010-看门狗使用实例",
            "url": "/sdoc/peripheral/watchdog/126b09043c29000296442c6e.html",
            "frontmatter": {
              "title": "LV010-看门狗使用实例",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/peripheral/watchdog/126b09043c29000296442c6e",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "296442c6e9ba4600b39cd12075ea87af",
                "useduuid": "296442c6e"
              }
            }
          }
        ]
      },
      "sdoc/20-基本外设篇/25-FSMC/01-FSMC基础": {
        "url": "sdoc/peripheral/fsmc/fsmc-basic/126b09248c5109dd1fe11f31.html",
        "filePath": "sdoc/20-基本外设篇/25-FSMC/01-FSMC基础/index",
        "catalogues": [
          {
            "title": "LV001-FSMC简介",
            "url": "/sdoc/peripheral/fsmc/fsmc-basic/126b092492553b23e8704ba7.html",
            "frontmatter": {
              "title": "LV001-FSMC简介",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/peripheral/fsmc/fsmc-basic/126b092492553b23e8704ba7",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "3e8704ba79214a3cbb9ab231d637b62e",
                "useduuid": "3e8704ba7"
              }
            }
          },
          {
            "title": "LV005-存储器映射与控制器",
            "url": "/sdoc/peripheral/fsmc/fsmc-basic/126b092499b000721416c9a0.html",
            "frontmatter": {
              "title": "LV005-存储器映射与控制器",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/peripheral/fsmc/fsmc-basic/126b092499b000721416c9a0",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "21416c9a03d8478188e3897a2c59aa5e",
                "useduuid": "21416c9a0"
              }
            }
          },
          {
            "title": "LV010-相关HAL库函数",
            "url": "/sdoc/peripheral/fsmc/fsmc-basic/126b0924b19533081adda526.html",
            "frontmatter": {
              "title": "LV010-相关HAL库函数",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/peripheral/fsmc/fsmc-basic/126b0924b19533081adda526",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "81adda5266e04132bfcad67ecceec69d",
                "useduuid": "81adda526"
              }
            }
          }
        ]
      },
      "sdoc/20-基本外设篇/25-FSMC/05-外部SRAM": {
        "url": "sdoc/peripheral/fsmc/sram/126b09248c59366360c72955.html",
        "filePath": "sdoc/20-基本外设篇/25-FSMC/05-外部SRAM/index",
        "catalogues": [
          {
            "title": "LV001-概述",
            "url": "/sdoc/peripheral/fsmc/sram/126b09248e5b007fcadf7acc.html",
            "frontmatter": {
              "title": "LV001-概述",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/peripheral/fsmc/sram/126b09248e5b007fcadf7acc",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "fcadf7accc90458fa4cab2cebf963be3",
                "useduuid": "fcadf7acc"
              }
            }
          },
          {
            "title": "LV002-XM8A51216简介",
            "url": "/sdoc/peripheral/fsmc/sram/126b09248ce51200a79d393f.html",
            "frontmatter": {
              "title": "LV002-XM8A51216简介",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/peripheral/fsmc/sram/126b09248ce51200a79d393f",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "0a79d393fee944b89889bdacfda6ea95",
                "useduuid": "0a79d393f"
              }
            }
          },
          {
            "title": "LV005-IS62WV51216简介",
            "url": "/sdoc/peripheral/fsmc/sram/126b09248db61d861c837fd7.html",
            "frontmatter": {
              "title": "LV005-IS62WV51216简介",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/peripheral/fsmc/sram/126b09248db61d861c837fd7",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "61c837fd7bf24e47b455ebbf97c03db7",
                "useduuid": "61c837fd7"
              }
            }
          },
          {
            "title": "LV015-外部SRAM读写实例",
            "url": "/sdoc/peripheral/fsmc/sram/126b0924b2d20263b97733d0.html",
            "frontmatter": {
              "title": "LV015-外部SRAM读写实例",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/peripheral/fsmc/sram/126b0924b2d20263b97733d0",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "3b97733d0c5f43148008ceafa2203f32",
                "useduuid": "3b97733d0"
              }
            }
          }
        ]
      },
      "sdoc/20-基本外设篇/25-FSMC": {
        "url": "sdoc/peripheral/fsmc/126b09248c2122169ae2fda2.html",
        "filePath": "sdoc/20-基本外设篇/25-FSMC/index",
        "catalogues": [
          {
            "title": "01-FSMC基础",
            "children": [
              {
                "title": "LV001-FSMC简介",
                "url": "/sdoc/peripheral/fsmc/fsmc-basic/126b092492553b23e8704ba7.html",
                "frontmatter": {
                  "title": "LV001-FSMC简介",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/peripheral/fsmc/fsmc-basic/126b092492553b23e8704ba7",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "3e8704ba79214a3cbb9ab231d637b62e",
                    "useduuid": "3e8704ba7"
                  }
                }
              },
              {
                "title": "LV005-存储器映射与控制器",
                "url": "/sdoc/peripheral/fsmc/fsmc-basic/126b092499b000721416c9a0.html",
                "frontmatter": {
                  "title": "LV005-存储器映射与控制器",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/peripheral/fsmc/fsmc-basic/126b092499b000721416c9a0",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "21416c9a03d8478188e3897a2c59aa5e",
                    "useduuid": "21416c9a0"
                  }
                }
              },
              {
                "title": "LV010-相关HAL库函数",
                "url": "/sdoc/peripheral/fsmc/fsmc-basic/126b0924b19533081adda526.html",
                "frontmatter": {
                  "title": "LV010-相关HAL库函数",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/peripheral/fsmc/fsmc-basic/126b0924b19533081adda526",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "81adda5266e04132bfcad67ecceec69d",
                    "useduuid": "81adda526"
                  }
                }
              }
            ],
            "frontmatter": {}
          },
          {
            "title": "05-外部SRAM",
            "children": [
              {
                "title": "LV001-概述",
                "url": "/sdoc/peripheral/fsmc/sram/126b09248e5b007fcadf7acc.html",
                "frontmatter": {
                  "title": "LV001-概述",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/peripheral/fsmc/sram/126b09248e5b007fcadf7acc",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "fcadf7accc90458fa4cab2cebf963be3",
                    "useduuid": "fcadf7acc"
                  }
                }
              },
              {
                "title": "LV002-XM8A51216简介",
                "url": "/sdoc/peripheral/fsmc/sram/126b09248ce51200a79d393f.html",
                "frontmatter": {
                  "title": "LV002-XM8A51216简介",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/peripheral/fsmc/sram/126b09248ce51200a79d393f",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "0a79d393fee944b89889bdacfda6ea95",
                    "useduuid": "0a79d393f"
                  }
                }
              },
              {
                "title": "LV005-IS62WV51216简介",
                "url": "/sdoc/peripheral/fsmc/sram/126b09248db61d861c837fd7.html",
                "frontmatter": {
                  "title": "LV005-IS62WV51216简介",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/peripheral/fsmc/sram/126b09248db61d861c837fd7",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "61c837fd7bf24e47b455ebbf97c03db7",
                    "useduuid": "61c837fd7"
                  }
                }
              },
              {
                "title": "LV015-外部SRAM读写实例",
                "url": "/sdoc/peripheral/fsmc/sram/126b0924b2d20263b97733d0.html",
                "frontmatter": {
                  "title": "LV015-外部SRAM读写实例",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/peripheral/fsmc/sram/126b0924b2d20263b97733d0",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "3b97733d0c5f43148008ceafa2203f32",
                    "useduuid": "3b97733d0"
                  }
                }
              }
            ],
            "frontmatter": {}
          }
        ]
      },
      "sdoc/20-基本外设篇/30-I2C": {
        "url": "sdoc/peripheral/i2c/126b09344bc72d87b3b3eff9.html",
        "filePath": "sdoc/20-基本外设篇/30-I2C/index",
        "catalogues": [
          {
            "title": "LV001-STM32的I2C",
            "url": "/sdoc/peripheral/i2c/126b09344c01323883ac1ab4.html",
            "frontmatter": {
              "title": "LV001-STM32的I2C",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/peripheral/i2c/126b09344c01323883ac1ab4",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "883ac1ab454e45c8903061818823ca7f",
                "useduuid": "883ac1ab4"
              }
            }
          },
          {
            "title": "LV010-AT24C02简介",
            "url": "/sdoc/peripheral/i2c/126b09344d8f021f00cacd6c.html",
            "frontmatter": {
              "title": "LV010-AT24C02简介",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/peripheral/i2c/126b09344d8f021f00cacd6c",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "f00cacd6ccbd4a459325107dc47b447a",
                "useduuid": "f00cacd6c"
              }
            }
          },
          {
            "title": "LV015-AT24C02使用实例",
            "url": "/sdoc/peripheral/i2c/126b09344f37186302faabd7.html",
            "frontmatter": {
              "title": "LV015-AT24C02使用实例",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/peripheral/i2c/126b09344f37186302faabd7",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "302faabd7f05494cbdcffb39c1c91164",
                "useduuid": "302faabd7"
              }
            }
          }
        ]
      },
      "sdoc/20-基本外设篇/35-SPI": {
        "url": "sdoc/peripheral/spi/126b0950f46d2b67951e2c74.html",
        "filePath": "sdoc/20-基本外设篇/35-SPI/index",
        "catalogues": [
          {
            "title": "LV001-STM32的SPI",
            "url": "/sdoc/peripheral/spi/126b0950f4ae14889c830ae3.html",
            "frontmatter": {
              "title": "LV001-STM32的SPI",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/peripheral/spi/126b0950f4ae14889c830ae3",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "89c830ae3a594952be17b5abc6bbb737",
                "useduuid": "89c830ae3"
              }
            }
          },
          {
            "title": "LV010-W25QXXX简介",
            "url": "/sdoc/peripheral/spi/126b0950f64a0b5a3fbcba93.html",
            "frontmatter": {
              "title": "LV010-W25QXXX简介",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/peripheral/spi/126b0950f64a0b5a3fbcba93",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "a3fbcba93d1642329a28cddcb65ad8e8",
                "useduuid": "a3fbcba93"
              }
            }
          },
          {
            "title": "LV015-SPI读写W25QXXX实例",
            "url": "/sdoc/peripheral/spi/126b0950f849211ff053e7ff.html",
            "frontmatter": {
              "title": "LV015-SPI读写W25QXXX实例",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/peripheral/spi/126b0950f849211ff053e7ff",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "ff053e7ff3e247358beec3bab1ba61de",
                "useduuid": "ff053e7ff"
              }
            }
          }
        ]
      },
      "sdoc/20-基本外设篇/40-DMA": {
        "url": "sdoc/peripheral/dma/126b0950fb76332c67477449.html",
        "filePath": "sdoc/20-基本外设篇/40-DMA/index",
        "catalogues": [
          {
            "title": "LV001-DMA简介",
            "url": "/sdoc/peripheral/dma/126b0950fbc52669af52caac.html",
            "frontmatter": {
              "title": "LV001-DMA简介",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/peripheral/dma/126b0950fbc52669af52caac",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "9af52caac91c42b1b28d2e09c22f8d43",
                "useduuid": "9af52caac"
              }
            }
          },
          {
            "title": "LV010-DMA使用实例",
            "url": "/sdoc/peripheral/dma/126b0950fc960317c7b64826.html",
            "frontmatter": {
              "title": "LV010-DMA使用实例",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/peripheral/dma/126b0950fc960317c7b64826",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "7c7b6482620b4698a5eac4b6e449f631",
                "useduuid": "7c7b64826"
              }
            }
          }
        ]
      },
      "sdoc/20-基本外设篇/50-SDIO": {
        "url": "sdoc/peripheral/sdio/126b0950fdc523d3bcab509d.html",
        "filePath": "sdoc/20-基本外设篇/50-SDIO/index",
        "catalogues": [
          {
            "title": "LV001-SD卡简介",
            "url": "/sdoc/peripheral/sdio/126b0950fe110bc81c4d2fd3.html",
            "frontmatter": {
              "title": "LV001-SD卡简介",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/peripheral/sdio/126b0950fe110bc81c4d2fd3",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "81c4d2fd3b3049a1a63dd12e12b5a3fa",
                "useduuid": "81c4d2fd3"
              }
            }
          },
          {
            "title": "LV015-SD卡的操作",
            "url": "/sdoc/peripheral/sdio/126b0950ff013d660d235356.html",
            "frontmatter": {
              "title": "LV015-SD卡的操作",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/peripheral/sdio/126b0950ff013d660d235356",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "60d235356a8a41c6b5be0b1b1d22ed03",
                "useduuid": "60d235356"
              }
            }
          },
          {
            "title": "LV020-STM32的SDIO",
            "url": "/sdoc/peripheral/sdio/126b0951000d2a75b964fa55.html",
            "frontmatter": {
              "title": "LV020-STM32的SDIO",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/peripheral/sdio/126b0951000d2a75b964fa55",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "5b964fa55b1c49f2849632ac18e58758",
                "useduuid": "5b964fa55"
              }
            }
          },
          {
            "title": "LV025-读写SD卡实例",
            "url": "/sdoc/peripheral/sdio/126b095100d21af60c8ed17e.html",
            "frontmatter": {
              "title": "LV025-读写SD卡实例",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/peripheral/sdio/126b095100d21af60c8ed17e",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "60c8ed17e9a9490aaf1efe2014ac5b67",
                "useduuid": "60c8ed17e"
              }
            }
          }
        ]
      },
      "sdoc/20-基本外设篇/55-RTC时钟": {
        "url": "sdoc/peripheral/rtc/126b09511e9e39a6b6fcf250.html",
        "filePath": "sdoc/20-基本外设篇/55-RTC时钟/index",
        "catalogues": [
          {
            "title": "LV001-RTC简介",
            "url": "/sdoc/peripheral/rtc/126b09511eac35920a3f191c.html",
            "frontmatter": {
              "title": "LV001-RTC简介",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/peripheral/rtc/126b09511eac35920a3f191c",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "20a3f191c6054d8d9f5fd53ff7b809de",
                "useduuid": "20a3f191c"
              }
            }
          }
        ]
      },
      "sdoc/20-基本外设篇/60-USB": {
        "url": "sdoc/peripheral/usb/126b095167923a1447b3ed2c.html",
        "filePath": "sdoc/20-基本外设篇/60-USB/index",
        "catalogues": [
          {
            "title": "LV001-USB简介",
            "url": "/sdoc/peripheral/usb/126b095167b12a8376012928.html",
            "frontmatter": {
              "title": "LV001-USB简介",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/peripheral/usb/126b095167b12a8376012928",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "3760129282bc45c68e9217915df4f46b",
                "useduuid": 376012928
              }
            }
          },
          {
            "title": "LV010-USB读卡器实例",
            "url": "/sdoc/peripheral/usb/126b095168b91d9fad5c2a07.html",
            "frontmatter": {
              "title": "LV010-USB读卡器实例",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/peripheral/usb/126b095168b91d9fad5c2a07",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "fad5c2a07ce14efe93e887b24a93fb47",
                "useduuid": "fad5c2a07"
              }
            }
          }
        ]
      },
      "sdoc/20-基本外设篇": {
        "url": "sdoc/peripherals/126b08ba0bf0218c6b2c4985.html",
        "filePath": "sdoc/20-基本外设篇/index",
        "catalogues": [
          {
            "title": "01-GPIO",
            "children": [
              {
                "title": "LV001-STM32的GPIO简介",
                "url": "/sdoc/peripheral/gpio/126b08e802d21f6e4f658296.html",
                "frontmatter": {
                  "title": "LV001-STM32的GPIO简介",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/peripheral/gpio/126b08e802d21f6e4f658296",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "e4f658296d8f440694a80e81f31777d4",
                    "useduuid": "e4f658296"
                  }
                }
              },
              {
                "title": "LV010-输入输出模式详解",
                "url": "/sdoc/peripheral/gpio/126b08e804d303ad5b541ecd.html",
                "frontmatter": {
                  "title": "LV010-输入输出模式详解",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/peripheral/gpio/126b08e804d303ad5b541ecd",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "d5b541ecde0f4e1799e17d09e88a33fa",
                    "useduuid": "d5b541ecd"
                  }
                }
              },
              {
                "title": "LV020-GPIO控制LED",
                "url": "/sdoc/peripheral/gpio/126b08e805ca1e15c40474c4.html",
                "frontmatter": {
                  "title": "LV020-GPIO控制LED",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/peripheral/gpio/126b08e805ca1e15c40474c4",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "5c40474c47fc44e49114f4489f7fb359",
                    "useduuid": "5c40474c4"
                  }
                }
              },
              {
                "title": "LV030-按键检测",
                "url": "/sdoc/peripheral/gpio/126b08e8078f1f2b7ad1d6a6.html",
                "frontmatter": {
                  "title": "LV030-按键检测",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/peripheral/gpio/126b08e8078f1f2b7ad1d6a6",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "b7ad1d6a65df41fab1ae6bd4b2de28b9",
                    "useduuid": "b7ad1d6a6"
                  }
                }
              },
              {
                "title": "LV040-外部中断",
                "url": "/sdoc/peripheral/gpio/126b08f58a5c2c09e1d6100f.html",
                "frontmatter": {
                  "title": "LV040-外部中断",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/peripheral/gpio/126b08f58a5c2c09e1d6100f",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "9e1d6100f7d74737974bd9674a8ba8c0",
                    "useduuid": "9e1d6100f"
                  }
                }
              },
              {
                "title": "LV045-外部中断实例",
                "url": "/sdoc/peripheral/gpio/126b08f596281cc89a3bc4c6.html",
                "frontmatter": {
                  "title": "LV045-外部中断实例",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/peripheral/gpio/126b08f596281cc89a3bc4c6",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "89a3bc4c6a9b4249afce4152ca5d1241",
                    "useduuid": "89a3bc4c6"
                  }
                }
              }
            ],
            "frontmatter": {}
          },
          {
            "title": "10-UART",
            "children": [
              {
                "title": "LV001-串口通信简介",
                "url": "/sdoc/peripheral/uart/126b08f60edb3b6ac7962cbf.html",
                "frontmatter": {
                  "title": "LV001-串口通信简介",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/peripheral/uart/126b08f60edb3b6ac7962cbf",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "ac7962cbf7d245659539f5436bb59e37",
                    "useduuid": "ac7962cbf"
                  }
                }
              },
              {
                "title": "LV010-STM32的串口",
                "url": "/sdoc/peripheral/uart/126b08f6146d2d238b102738.html",
                "frontmatter": {
                  "title": "LV010-STM32的串口",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/peripheral/uart/126b08f6146d2d238b102738",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "38b1027380d146cb959e571687931c97",
                    "useduuid": "38b102738"
                  }
                }
              },
              {
                "title": "LV020-串口收发实例",
                "url": "/sdoc/peripheral/uart/126b08f61664097f4a0617fc.html",
                "frontmatter": {
                  "title": "LV020-串口收发实例",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/peripheral/uart/126b08f61664097f4a0617fc",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "f4a0617fc94447a8962e262d9db98842",
                    "useduuid": "f4a0617fc"
                  }
                }
              }
            ],
            "frontmatter": {}
          },
          {
            "title": "15-定时器",
            "children": [
              {
                "title": "LV001-基本定时器简介",
                "url": "/sdoc/peripheral/timer/basic/126b08f6a8e32e3427f3a2b2.html",
                "frontmatter": {
                  "title": "LV001-基本定时器简介",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/peripheral/timer/basic/126b08f6a8e32e3427f3a2b2",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "427f3a2b26fc476299e1f6f52f2c33ad",
                    "useduuid": "427f3a2b2"
                  }
                }
              },
              {
                "title": "LV030-通用定时器简介",
                "url": "/sdoc/peripheral/timer/126b08f6aa441b536809798e.html",
                "frontmatter": {
                  "title": "LV030-通用定时器简介",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/peripheral/timer/126b08f6aa441b536809798e",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "36809798e68046309b813b9706a23f8a",
                    "useduuid": "36809798e"
                  }
                }
              },
              {
                "title": "LV035-通用定时器的中断",
                "url": "/sdoc/peripheral/timer/126b08f6aa9f293ebbce26b2.html",
                "frontmatter": {
                  "title": "LV035-通用定时器的中断",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/peripheral/timer/126b08f6aa9f293ebbce26b2",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "ebbce26b2eed4f0e8e7db13c33566c30",
                    "useduuid": "ebbce26b2"
                  }
                }
              },
              {
                "title": "LV040-通用定时器PWM输出",
                "url": "/sdoc/peripheral/timer/126b08f6aac20ab7bc66d777.html",
                "frontmatter": {
                  "title": "LV040-通用定时器PWM输出",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/peripheral/timer/126b08f6aac20ab7bc66d777",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "7bc66d777a344e838bab8b97634f96bc",
                    "useduuid": "7bc66d777"
                  }
                }
              },
              {
                "title": "LV045-通用定时器输入捕获",
                "url": "/sdoc/peripheral/timer/126b08f6ab6404f5fdfb5648.html",
                "frontmatter": {
                  "title": "LV045-通用定时器输入捕获",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/peripheral/timer/126b08f6ab6404f5fdfb5648",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "5fdfb5648d1542adb31bc692aaebfac4",
                    "useduuid": "5fdfb5648"
                  }
                }
              },
              {
                "title": "LV050-通用定时器脉冲计数",
                "url": "/sdoc/peripheral/timer/126b08f6ab873bc74e57e381.html",
                "frontmatter": {
                  "title": "LV050-通用定时器脉冲计数",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/peripheral/timer/126b08f6ab873bc74e57e381",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "74e57e3815ac43a9b2ad64b853530fde",
                    "useduuid": "74e57e381"
                  }
                }
              },
              {
                "title": "LV070-高级定时器简介",
                "url": "/sdoc/peripheral/timer/126b08f6abf821065c6674f2.html",
                "frontmatter": {
                  "title": "LV070-高级定时器简介",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/peripheral/timer/126b08f6abf821065c6674f2",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "65c6674f24194a5c905c5931e3b1bb25",
                    "useduuid": "65c6674f2"
                  }
                }
              },
              {
                "title": "LV075-高级定时器PWM输出",
                "url": "/sdoc/peripheral/timer/126b08f6ac4f2bb02b42403e.html",
                "frontmatter": {
                  "title": "LV075-高级定时器PWM输出",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/peripheral/timer/126b08f6ac4f2bb02b42403e",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "02b42403e6334b1e88b3aefe535488bf",
                    "useduuid": "02b42403e"
                  }
                }
              },
              {
                "title": "LV080-高级定时器输出比较模式",
                "url": "/sdoc/peripheral/timer/126b08f6aca0253099c9ba29.html",
                "frontmatter": {
                  "title": "LV080-高级定时器输出比较模式",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/peripheral/timer/126b08f6aca0253099c9ba29",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "099c9ba29781487ab77ef3977ecd7122",
                    "useduuid": "099c9ba29"
                  }
                }
              },
              {
                "title": "LV085-高级定时器互补输出",
                "url": "/sdoc/peripheral/timer/126b08f6ad8f2e0487d6c438.html",
                "frontmatter": {
                  "title": "LV085-高级定时器互补输出",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/peripheral/timer/126b08f6ad8f2e0487d6c438",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "487d6c4384224a459898d149b83609e0",
                    "useduuid": "487d6c438"
                  }
                }
              },
              {
                "title": "LV090-高级定时器PWM输入",
                "url": "/sdoc/peripheral/timer/126b08f6ae2512a51a9eec42.html",
                "frontmatter": {
                  "title": "LV090-高级定时器PWM输入",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/peripheral/timer/126b08f6ae2512a51a9eec42",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "51a9eec423e4412c99aa8247ccd2092d",
                    "useduuid": "51a9eec42"
                  }
                }
              },
              {
                "title": "LV100-SysTick定时器简介",
                "url": "/sdoc/peripheral/timer/126b08f7176d34627620ad1b.html",
                "frontmatter": {
                  "title": "LV100-SysTick定时器简介",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/peripheral/timer/126b08f7176d34627620ad1b",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "27620ad1b6704f3ab64b6bc4d14b88f4",
                    "useduuid": "27620ad1b"
                  }
                }
              },
              {
                "title": "LV105-自定义延时函数",
                "url": "/sdoc/peripheral/timer/126b08f71bb31f61f9e3c819.html",
                "frontmatter": {
                  "title": "LV105-自定义延时函数",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/peripheral/timer/126b08f71bb31f61f9e3c819",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "1f9e3c81978544cfa5b36e225514bb0d",
                    "useduuid": "1f9e3c819"
                  }
                }
              }
            ],
            "frontmatter": {}
          },
          {
            "title": "20-看门狗",
            "children": [
              {
                "title": "LV001-看门狗简介",
                "url": "/sdoc/peripheral/watchdog/126b09043ae916195cb39541.html",
                "frontmatter": {
                  "title": "LV001-看门狗简介",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/peripheral/watchdog/126b09043ae916195cb39541",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "95cb3954118d49beb6d6912a9e3cb522",
                    "useduuid": "95cb39541"
                  }
                }
              },
              {
                "title": "LV010-看门狗使用实例",
                "url": "/sdoc/peripheral/watchdog/126b09043c29000296442c6e.html",
                "frontmatter": {
                  "title": "LV010-看门狗使用实例",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/peripheral/watchdog/126b09043c29000296442c6e",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "296442c6e9ba4600b39cd12075ea87af",
                    "useduuid": "296442c6e"
                  }
                }
              }
            ],
            "frontmatter": {}
          },
          {
            "title": "25-FSMC",
            "children": [
              {
                "title": "01-FSMC基础",
                "children": [
                  {
                    "title": "LV001-FSMC简介",
                    "url": "/sdoc/peripheral/fsmc/fsmc-basic/126b092492553b23e8704ba7.html",
                    "frontmatter": {
                      "title": "LV001-FSMC简介",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/peripheral/fsmc/fsmc-basic/126b092492553b23e8704ba7",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "3e8704ba79214a3cbb9ab231d637b62e",
                        "useduuid": "3e8704ba7"
                      }
                    }
                  },
                  {
                    "title": "LV005-存储器映射与控制器",
                    "url": "/sdoc/peripheral/fsmc/fsmc-basic/126b092499b000721416c9a0.html",
                    "frontmatter": {
                      "title": "LV005-存储器映射与控制器",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/peripheral/fsmc/fsmc-basic/126b092499b000721416c9a0",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "21416c9a03d8478188e3897a2c59aa5e",
                        "useduuid": "21416c9a0"
                      }
                    }
                  },
                  {
                    "title": "LV010-相关HAL库函数",
                    "url": "/sdoc/peripheral/fsmc/fsmc-basic/126b0924b19533081adda526.html",
                    "frontmatter": {
                      "title": "LV010-相关HAL库函数",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/peripheral/fsmc/fsmc-basic/126b0924b19533081adda526",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "81adda5266e04132bfcad67ecceec69d",
                        "useduuid": "81adda526"
                      }
                    }
                  }
                ],
                "frontmatter": {}
              },
              {
                "title": "05-外部SRAM",
                "children": [
                  {
                    "title": "LV001-概述",
                    "url": "/sdoc/peripheral/fsmc/sram/126b09248e5b007fcadf7acc.html",
                    "frontmatter": {
                      "title": "LV001-概述",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/peripheral/fsmc/sram/126b09248e5b007fcadf7acc",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "fcadf7accc90458fa4cab2cebf963be3",
                        "useduuid": "fcadf7acc"
                      }
                    }
                  },
                  {
                    "title": "LV002-XM8A51216简介",
                    "url": "/sdoc/peripheral/fsmc/sram/126b09248ce51200a79d393f.html",
                    "frontmatter": {
                      "title": "LV002-XM8A51216简介",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/peripheral/fsmc/sram/126b09248ce51200a79d393f",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "0a79d393fee944b89889bdacfda6ea95",
                        "useduuid": "0a79d393f"
                      }
                    }
                  },
                  {
                    "title": "LV005-IS62WV51216简介",
                    "url": "/sdoc/peripheral/fsmc/sram/126b09248db61d861c837fd7.html",
                    "frontmatter": {
                      "title": "LV005-IS62WV51216简介",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/peripheral/fsmc/sram/126b09248db61d861c837fd7",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "61c837fd7bf24e47b455ebbf97c03db7",
                        "useduuid": "61c837fd7"
                      }
                    }
                  },
                  {
                    "title": "LV015-外部SRAM读写实例",
                    "url": "/sdoc/peripheral/fsmc/sram/126b0924b2d20263b97733d0.html",
                    "frontmatter": {
                      "title": "LV015-外部SRAM读写实例",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/peripheral/fsmc/sram/126b0924b2d20263b97733d0",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "3b97733d0c5f43148008ceafa2203f32",
                        "useduuid": "3b97733d0"
                      }
                    }
                  }
                ],
                "frontmatter": {}
              }
            ],
            "frontmatter": {}
          },
          {
            "title": "30-I2C",
            "children": [
              {
                "title": "LV001-STM32的I2C",
                "url": "/sdoc/peripheral/i2c/126b09344c01323883ac1ab4.html",
                "frontmatter": {
                  "title": "LV001-STM32的I2C",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/peripheral/i2c/126b09344c01323883ac1ab4",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "883ac1ab454e45c8903061818823ca7f",
                    "useduuid": "883ac1ab4"
                  }
                }
              },
              {
                "title": "LV010-AT24C02简介",
                "url": "/sdoc/peripheral/i2c/126b09344d8f021f00cacd6c.html",
                "frontmatter": {
                  "title": "LV010-AT24C02简介",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/peripheral/i2c/126b09344d8f021f00cacd6c",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "f00cacd6ccbd4a459325107dc47b447a",
                    "useduuid": "f00cacd6c"
                  }
                }
              },
              {
                "title": "LV015-AT24C02使用实例",
                "url": "/sdoc/peripheral/i2c/126b09344f37186302faabd7.html",
                "frontmatter": {
                  "title": "LV015-AT24C02使用实例",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/peripheral/i2c/126b09344f37186302faabd7",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "302faabd7f05494cbdcffb39c1c91164",
                    "useduuid": "302faabd7"
                  }
                }
              }
            ],
            "frontmatter": {}
          },
          {
            "title": "35-SPI",
            "children": [
              {
                "title": "LV001-STM32的SPI",
                "url": "/sdoc/peripheral/spi/126b0950f4ae14889c830ae3.html",
                "frontmatter": {
                  "title": "LV001-STM32的SPI",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/peripheral/spi/126b0950f4ae14889c830ae3",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "89c830ae3a594952be17b5abc6bbb737",
                    "useduuid": "89c830ae3"
                  }
                }
              },
              {
                "title": "LV010-W25QXXX简介",
                "url": "/sdoc/peripheral/spi/126b0950f64a0b5a3fbcba93.html",
                "frontmatter": {
                  "title": "LV010-W25QXXX简介",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/peripheral/spi/126b0950f64a0b5a3fbcba93",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "a3fbcba93d1642329a28cddcb65ad8e8",
                    "useduuid": "a3fbcba93"
                  }
                }
              },
              {
                "title": "LV015-SPI读写W25QXXX实例",
                "url": "/sdoc/peripheral/spi/126b0950f849211ff053e7ff.html",
                "frontmatter": {
                  "title": "LV015-SPI读写W25QXXX实例",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/peripheral/spi/126b0950f849211ff053e7ff",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "ff053e7ff3e247358beec3bab1ba61de",
                    "useduuid": "ff053e7ff"
                  }
                }
              }
            ],
            "frontmatter": {}
          },
          {
            "title": "40-DMA",
            "children": [
              {
                "title": "LV001-DMA简介",
                "url": "/sdoc/peripheral/dma/126b0950fbc52669af52caac.html",
                "frontmatter": {
                  "title": "LV001-DMA简介",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/peripheral/dma/126b0950fbc52669af52caac",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "9af52caac91c42b1b28d2e09c22f8d43",
                    "useduuid": "9af52caac"
                  }
                }
              },
              {
                "title": "LV010-DMA使用实例",
                "url": "/sdoc/peripheral/dma/126b0950fc960317c7b64826.html",
                "frontmatter": {
                  "title": "LV010-DMA使用实例",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/peripheral/dma/126b0950fc960317c7b64826",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "7c7b6482620b4698a5eac4b6e449f631",
                    "useduuid": "7c7b64826"
                  }
                }
              }
            ],
            "frontmatter": {}
          },
          {
            "title": "50-SDIO",
            "children": [
              {
                "title": "LV001-SD卡简介",
                "url": "/sdoc/peripheral/sdio/126b0950fe110bc81c4d2fd3.html",
                "frontmatter": {
                  "title": "LV001-SD卡简介",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/peripheral/sdio/126b0950fe110bc81c4d2fd3",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "81c4d2fd3b3049a1a63dd12e12b5a3fa",
                    "useduuid": "81c4d2fd3"
                  }
                }
              },
              {
                "title": "LV015-SD卡的操作",
                "url": "/sdoc/peripheral/sdio/126b0950ff013d660d235356.html",
                "frontmatter": {
                  "title": "LV015-SD卡的操作",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/peripheral/sdio/126b0950ff013d660d235356",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "60d235356a8a41c6b5be0b1b1d22ed03",
                    "useduuid": "60d235356"
                  }
                }
              },
              {
                "title": "LV020-STM32的SDIO",
                "url": "/sdoc/peripheral/sdio/126b0951000d2a75b964fa55.html",
                "frontmatter": {
                  "title": "LV020-STM32的SDIO",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/peripheral/sdio/126b0951000d2a75b964fa55",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "5b964fa55b1c49f2849632ac18e58758",
                    "useduuid": "5b964fa55"
                  }
                }
              },
              {
                "title": "LV025-读写SD卡实例",
                "url": "/sdoc/peripheral/sdio/126b095100d21af60c8ed17e.html",
                "frontmatter": {
                  "title": "LV025-读写SD卡实例",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/peripheral/sdio/126b095100d21af60c8ed17e",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "60c8ed17e9a9490aaf1efe2014ac5b67",
                    "useduuid": "60c8ed17e"
                  }
                }
              }
            ],
            "frontmatter": {}
          },
          {
            "title": "55-RTC时钟",
            "children": [
              {
                "title": "LV001-RTC简介",
                "url": "/sdoc/peripheral/rtc/126b09511eac35920a3f191c.html",
                "frontmatter": {
                  "title": "LV001-RTC简介",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/peripheral/rtc/126b09511eac35920a3f191c",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "20a3f191c6054d8d9f5fd53ff7b809de",
                    "useduuid": "20a3f191c"
                  }
                }
              }
            ],
            "frontmatter": {}
          },
          {
            "title": "60-USB",
            "children": [
              {
                "title": "LV001-USB简介",
                "url": "/sdoc/peripheral/usb/126b095167b12a8376012928.html",
                "frontmatter": {
                  "title": "LV001-USB简介",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/peripheral/usb/126b095167b12a8376012928",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "3760129282bc45c68e9217915df4f46b",
                    "useduuid": 376012928
                  }
                }
              },
              {
                "title": "LV010-USB读卡器实例",
                "url": "/sdoc/peripheral/usb/126b095168b91d9fad5c2a07.html",
                "frontmatter": {
                  "title": "LV010-USB读卡器实例",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/peripheral/usb/126b095168b91d9fad5c2a07",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "fad5c2a07ce14efe93e887b24a93fb47",
                    "useduuid": "fad5c2a07"
                  }
                }
              }
            ],
            "frontmatter": {}
          }
        ]
      },
      "sdoc/30-进阶篇/01-文件系统": {
        "url": "sdoc/advanced-chapter/file-system/126b095103f1237157cc07c6.html",
        "filePath": "sdoc/30-进阶篇/01-文件系统/index",
        "catalogues": [
          {
            "title": "LV001-文件系统简介",
            "url": "/sdoc/advanced-chapter/file-system/126b0951040033e78ccbca10.html",
            "frontmatter": {
              "title": "LV001-文件系统简介",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/advanced-chapter/file-system/126b0951040033e78ccbca10",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "78ccbca106d046ecaee2de5e4c1f5766",
                "useduuid": "78ccbca10"
              }
            }
          },
          {
            "title": "LV010-FATFS简介",
            "url": "/sdoc/advanced-chapter/file-system/126b095105912fc87e8eb3f7.html",
            "frontmatter": {
              "title": "LV010-FATFS简介",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/advanced-chapter/file-system/126b095105912fc87e8eb3f7",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "87e8eb3f76b14573a4c0856bf2257669",
                "useduuid": "87e8eb3f7"
              }
            }
          },
          {
            "title": "LV015-基于SPIFLASH移植FATFS",
            "url": "/sdoc/advanced-chapter/file-system/126b0951078a03391bda267a.html",
            "frontmatter": {
              "title": "LV015-基于SPIFLASH移植FATFS",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/advanced-chapter/file-system/126b0951078a03391bda267a",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "91bda267a4934867a0b05673bbc3ef13",
                "useduuid": "91bda267a"
              }
            }
          },
          {
            "title": "LV015-基于SD卡移植FATFS",
            "url": "/sdoc/advanced-chapter/file-system/126b09511b702501a47f120c.html",
            "frontmatter": {
              "title": "LV015-基于SD卡移植FATFS",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/advanced-chapter/file-system/126b09511b702501a47f120c",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "1a47f120cd8c41b6ab06d05da2ace352",
                "useduuid": "1a47f120c"
              }
            }
          },
          {
            "title": "LV025-FATFS中自定义的一些函数",
            "url": "/sdoc/advanced-chapter/file-system/126b09511d060b54b7d725e9.html",
            "frontmatter": {
              "title": "LV025-FATFS中自定义的一些函数",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/advanced-chapter/file-system/126b09511d060b54b7d725e9",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "4b7d725e9ba54c78945189a9341e3b34",
                "useduuid": "4b7d725e9"
              }
            }
          }
        ]
      },
      "sdoc/30-进阶篇/02-ESP8266": {
        "url": "sdoc/advanced-chapter/esp8266/126b0951501d17f37e2b0091.html",
        "filePath": "sdoc/30-进阶篇/02-ESP8266/index",
        "catalogues": [
          {
            "title": "LV001-ESP8266模块简介",
            "url": "/sdoc/advanced-chapter/esp8266/126b0951502d346ca9aa7929.html",
            "frontmatter": {
              "title": "LV001-ESP8266模块简介",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/advanced-chapter/esp8266/126b0951502d346ca9aa7929",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "ca9aa79298244701abe40ba6e8a3afb0",
                "useduuid": "ca9aa7929"
              }
            }
          },
          {
            "title": "LV010-AT指令",
            "url": "/sdoc/advanced-chapter/esp8266/126b095151472d621a6605a9.html",
            "frontmatter": {
              "title": "LV010-AT指令",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/advanced-chapter/esp8266/126b095151472d621a6605a9",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "21a6605a91b34e7b87e3081f66267021",
                "useduuid": "21a6605a9"
              }
            }
          },
          {
            "title": "LV015-ESP8266固件烧录",
            "url": "/sdoc/advanced-chapter/esp8266/126b0951520814de18399844.html",
            "frontmatter": {
              "title": "LV015-ESP8266固件烧录",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/advanced-chapter/esp8266/126b0951520814de18399844",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "e18399844bf344e3bb81cdc33db73395",
                "useduuid": "e18399844"
              }
            }
          },
          {
            "title": "LV020-ATK-ESP8266使用实例",
            "url": "/sdoc/advanced-chapter/esp8266/126b095152fb04ead8380cb5.html",
            "frontmatter": {
              "title": "LV020-ATK-ESP8266使用实例",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/advanced-chapter/esp8266/126b095152fb04ead8380cb5",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "ad8380cb587c446592ab6fa1ae7318fd",
                "useduuid": "ad8380cb5"
              }
            }
          }
        ]
      },
      "sdoc/30-进阶篇/03-OV7725": {
        "url": "sdoc/advanced-chapter/ov7725/126b09516acd106d46ca7dbf.html",
        "filePath": "sdoc/30-进阶篇/03-OV7725/index",
        "catalogues": [
          {
            "title": "LV001-ATK-MC6625F模块简介",
            "url": "/sdoc/advanced-chapter/ov7725/126b09516b08191a7bd0fd02.html",
            "frontmatter": {
              "title": "LV001-ATK-MC6625F模块简介",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/advanced-chapter/ov7725/126b09516b08191a7bd0fd02",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "a7bd0fd0290345cfae6ad4ff74f043f7",
                "useduuid": "a7bd0fd02"
              }
            }
          },
          {
            "title": "LV010-SCCB协议简介",
            "url": "/sdoc/advanced-chapter/ov7725/126b09516b6c2fed98855250.html",
            "frontmatter": {
              "title": "LV010-SCCB协议简介",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/advanced-chapter/ov7725/126b09516b6c2fed98855250",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "d9885525026649bdb9a31be28b79a722",
                "useduuid": "d98855250"
              }
            }
          },
          {
            "title": "LV020-OV7725简介",
            "url": "/sdoc/advanced-chapter/ov7725/126b09516bd03c413cd356e8.html",
            "frontmatter": {
              "title": "LV020-OV7725简介",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/advanced-chapter/ov7725/126b09516bd03c413cd356e8",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "13cd356e84f447f3b52ee1a287368dce",
                "useduuid": "13cd356e8"
              }
            }
          }
        ]
      },
      "sdoc/30-进阶篇/04-显示屏/01-OLED": {
        "url": "sdoc/advanced-chapter/display/oled/126b09516d232f134becda6b.html",
        "filePath": "sdoc/30-进阶篇/04-显示屏/01-OLED/index",
        "catalogues": [
          {
            "title": "LV001-OLED简介",
            "url": "/sdoc/advanced-chapter/display/oled/126b09516d6c2a948085516b.html",
            "frontmatter": {
              "title": "LV001-OLED简介",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/advanced-chapter/display/oled/126b09516d6c2a948085516b",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "48085516b89044b2a637057cfaac3f5c",
                "useduuid": "48085516b"
              }
            }
          },
          {
            "title": "LV010-8080时序驱动OLED",
            "url": "/sdoc/advanced-chapter/display/oled/126b09517279099247b327e5.html",
            "frontmatter": {
              "title": "LV010-8080时序驱动OLED",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/advanced-chapter/display/oled/126b09517279099247b327e5",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "247b327e5f1747919749deb8038e066d",
                "useduuid": "247b327e5"
              }
            }
          }
        ]
      },
      "sdoc/30-进阶篇/04-显示屏/02-LCD": {
        "url": "sdoc/advanced-chapter/display/lcd/126b09516d2f200db818e12a.html",
        "filePath": "sdoc/30-进阶篇/04-显示屏/02-LCD/index",
        "catalogues": [
          {
            "title": "LV001-LCD简介",
            "url": "/sdoc/advanced-chapter/display/lcd/126b0951740b3b3a3f69973e.html",
            "frontmatter": {
              "title": "LV001-LCD简介",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/advanced-chapter/display/lcd/126b0951740b3b3a3f69973e",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "a3f69973ef4142428240aba5719aeeb0",
                "useduuid": "a3f69973e"
              }
            }
          },
          {
            "title": "LV010-液晶控制原理",
            "url": "/sdoc/advanced-chapter/display/lcd/126b0951760b03320ea5c5be.html",
            "frontmatter": {
              "title": "LV010-液晶控制原理",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/advanced-chapter/display/lcd/126b0951760b03320ea5c5be",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "20ea5c5be93445288eac3b57c2e84f66",
                "useduuid": "20ea5c5be"
              }
            }
          },
          {
            "title": "LV015-ATK-MD0280模块",
            "url": "/sdoc/advanced-chapter/display/lcd/126b095237661ce983ad47b1.html",
            "frontmatter": {
              "title": "LV015-ATK-MD0280模块",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/advanced-chapter/display/lcd/126b095237661ce983ad47b1",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "983ad47b1ccb49c59396418e90556b0c",
                "useduuid": "983ad47b1"
              }
            }
          },
          {
            "title": "LV016-IL9341简介",
            "url": "/sdoc/advanced-chapter/display/lcd/126b095238ef12080fa9e2fc.html",
            "frontmatter": {
              "title": "LV016-IL9341简介",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/advanced-chapter/display/lcd/126b095238ef12080fa9e2fc",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "80fa9e2fc1c846ac9bfafe695ffc6b7d",
                "useduuid": "80fa9e2fc"
              }
            }
          },
          {
            "title": "LV020-FSMC模拟8080时序",
            "url": "/sdoc/advanced-chapter/display/lcd/126b09523c371707f0bd772f.html",
            "frontmatter": {
              "title": "LV020-FSMC模拟8080时序",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/advanced-chapter/display/lcd/126b09523c371707f0bd772f",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "7f0bd772fcbd424ab2f5aaf94abf65ff",
                "useduuid": "7f0bd772f"
              }
            }
          },
          {
            "title": "LV025-LCD显示实例",
            "url": "/sdoc/advanced-chapter/display/lcd/126b095253d9037570d31d42.html",
            "frontmatter": {
              "title": "LV025-LCD显示实例",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/advanced-chapter/display/lcd/126b095253d9037570d31d42",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "570d31d42d894e208a1fb9d5c484e257",
                "useduuid": "570d31d42"
              }
            }
          },
          {
            "title": "LV030-字符编码基础",
            "url": "/sdoc/advanced-chapter/display/lcd/126b095255800a53f67e99cc.html",
            "frontmatter": {
              "title": "LV030-字符编码基础",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/advanced-chapter/display/lcd/126b095255800a53f67e99cc",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "3f67e99cc1774328be76eff3ae429948",
                "useduuid": "3f67e99cc"
              }
            }
          },
          {
            "title": "LV035-中英文的显示",
            "url": "/sdoc/advanced-chapter/display/lcd/126b0952576b3df0941e36ed.html",
            "frontmatter": {
              "title": "LV035-中英文的显示",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/advanced-chapter/display/lcd/126b0952576b3df0941e36ed",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "0941e36ed35b4da7a71acace5c8d2e0d",
                "useduuid": "0941e36ed"
              }
            }
          },
          {
            "title": "LV040-实现任意大小字模",
            "url": "/sdoc/advanced-chapter/display/lcd/126b09525e7116330989fbcc.html",
            "frontmatter": {
              "title": "LV040-实现任意大小字模",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/advanced-chapter/display/lcd/126b09525e7116330989fbcc",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "30989fbcc8354f6baad6455294de0120",
                "useduuid": "30989fbcc"
              }
            }
          }
        ]
      },
      "sdoc/30-进阶篇/04-显示屏": {
        "url": "sdoc/advanced-chapter/display/126b09516d1d204fc8501804.html",
        "filePath": "sdoc/30-进阶篇/04-显示屏/index",
        "catalogues": [
          {
            "title": "01-OLED",
            "children": [
              {
                "title": "LV001-OLED简介",
                "url": "/sdoc/advanced-chapter/display/oled/126b09516d6c2a948085516b.html",
                "frontmatter": {
                  "title": "LV001-OLED简介",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/advanced-chapter/display/oled/126b09516d6c2a948085516b",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "48085516b89044b2a637057cfaac3f5c",
                    "useduuid": "48085516b"
                  }
                }
              },
              {
                "title": "LV010-8080时序驱动OLED",
                "url": "/sdoc/advanced-chapter/display/oled/126b09517279099247b327e5.html",
                "frontmatter": {
                  "title": "LV010-8080时序驱动OLED",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/advanced-chapter/display/oled/126b09517279099247b327e5",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "247b327e5f1747919749deb8038e066d",
                    "useduuid": "247b327e5"
                  }
                }
              }
            ],
            "frontmatter": {}
          },
          {
            "title": "02-LCD",
            "children": [
              {
                "title": "LV001-LCD简介",
                "url": "/sdoc/advanced-chapter/display/lcd/126b0951740b3b3a3f69973e.html",
                "frontmatter": {
                  "title": "LV001-LCD简介",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/advanced-chapter/display/lcd/126b0951740b3b3a3f69973e",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "a3f69973ef4142428240aba5719aeeb0",
                    "useduuid": "a3f69973e"
                  }
                }
              },
              {
                "title": "LV010-液晶控制原理",
                "url": "/sdoc/advanced-chapter/display/lcd/126b0951760b03320ea5c5be.html",
                "frontmatter": {
                  "title": "LV010-液晶控制原理",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/advanced-chapter/display/lcd/126b0951760b03320ea5c5be",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "20ea5c5be93445288eac3b57c2e84f66",
                    "useduuid": "20ea5c5be"
                  }
                }
              },
              {
                "title": "LV015-ATK-MD0280模块",
                "url": "/sdoc/advanced-chapter/display/lcd/126b095237661ce983ad47b1.html",
                "frontmatter": {
                  "title": "LV015-ATK-MD0280模块",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/advanced-chapter/display/lcd/126b095237661ce983ad47b1",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "983ad47b1ccb49c59396418e90556b0c",
                    "useduuid": "983ad47b1"
                  }
                }
              },
              {
                "title": "LV016-IL9341简介",
                "url": "/sdoc/advanced-chapter/display/lcd/126b095238ef12080fa9e2fc.html",
                "frontmatter": {
                  "title": "LV016-IL9341简介",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/advanced-chapter/display/lcd/126b095238ef12080fa9e2fc",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "80fa9e2fc1c846ac9bfafe695ffc6b7d",
                    "useduuid": "80fa9e2fc"
                  }
                }
              },
              {
                "title": "LV020-FSMC模拟8080时序",
                "url": "/sdoc/advanced-chapter/display/lcd/126b09523c371707f0bd772f.html",
                "frontmatter": {
                  "title": "LV020-FSMC模拟8080时序",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/advanced-chapter/display/lcd/126b09523c371707f0bd772f",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "7f0bd772fcbd424ab2f5aaf94abf65ff",
                    "useduuid": "7f0bd772f"
                  }
                }
              },
              {
                "title": "LV025-LCD显示实例",
                "url": "/sdoc/advanced-chapter/display/lcd/126b095253d9037570d31d42.html",
                "frontmatter": {
                  "title": "LV025-LCD显示实例",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/advanced-chapter/display/lcd/126b095253d9037570d31d42",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "570d31d42d894e208a1fb9d5c484e257",
                    "useduuid": "570d31d42"
                  }
                }
              },
              {
                "title": "LV030-字符编码基础",
                "url": "/sdoc/advanced-chapter/display/lcd/126b095255800a53f67e99cc.html",
                "frontmatter": {
                  "title": "LV030-字符编码基础",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/advanced-chapter/display/lcd/126b095255800a53f67e99cc",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "3f67e99cc1774328be76eff3ae429948",
                    "useduuid": "3f67e99cc"
                  }
                }
              },
              {
                "title": "LV035-中英文的显示",
                "url": "/sdoc/advanced-chapter/display/lcd/126b0952576b3df0941e36ed.html",
                "frontmatter": {
                  "title": "LV035-中英文的显示",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/advanced-chapter/display/lcd/126b0952576b3df0941e36ed",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "0941e36ed35b4da7a71acace5c8d2e0d",
                    "useduuid": "0941e36ed"
                  }
                }
              },
              {
                "title": "LV040-实现任意大小字模",
                "url": "/sdoc/advanced-chapter/display/lcd/126b09525e7116330989fbcc.html",
                "frontmatter": {
                  "title": "LV040-实现任意大小字模",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/advanced-chapter/display/lcd/126b09525e7116330989fbcc",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "30989fbcc8354f6baad6455294de0120",
                    "useduuid": "30989fbcc"
                  }
                }
              }
            ],
            "frontmatter": {}
          }
        ]
      },
      "sdoc/30-进阶篇/90-FreeRTOS/01-FreeRTOS简介": {
        "url": "docs/126b096ee4bd15f7d94c92d0.html",
        "filePath": "sdoc/30-进阶篇/90-FreeRTOS/01-FreeRTOS简介/index",
        "catalogues": [
          {
            "title": "LV001-FreeRTOS简介",
            "url": "/docs/126b096ee4d10f3bb564b607.html",
            "frontmatter": {
              "title": "LV001-FreeRTOS简介",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/docs/126b096ee4d10f3bb564b607",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "bb564b607089439882d4247b57282de9",
                "useduuid": "bb564b607"
              }
            }
          }
        ]
      },
      "sdoc/30-进阶篇/90-FreeRTOS": {
        "url": "docs/126b096ee490286163a5b271.html",
        "filePath": "sdoc/30-进阶篇/90-FreeRTOS/index",
        "catalogues": [
          {
            "title": "01-FreeRTOS简介",
            "children": [
              {
                "title": "LV001-FreeRTOS简介",
                "url": "/docs/126b096ee4d10f3bb564b607.html",
                "frontmatter": {
                  "title": "LV001-FreeRTOS简介",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/docs/126b096ee4d10f3bb564b607",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "bb564b607089439882d4247b57282de9",
                    "useduuid": "bb564b607"
                  }
                }
              }
            ],
            "frontmatter": {}
          }
        ]
      },
      "sdoc/30-进阶篇": {
        "url": "sdoc/advanced-chapter/126b095103e933d0da8853e8.html",
        "filePath": "sdoc/30-进阶篇/index",
        "catalogues": [
          {
            "title": "01-文件系统",
            "children": [
              {
                "title": "LV001-文件系统简介",
                "url": "/sdoc/advanced-chapter/file-system/126b0951040033e78ccbca10.html",
                "frontmatter": {
                  "title": "LV001-文件系统简介",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/advanced-chapter/file-system/126b0951040033e78ccbca10",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "78ccbca106d046ecaee2de5e4c1f5766",
                    "useduuid": "78ccbca10"
                  }
                }
              },
              {
                "title": "LV010-FATFS简介",
                "url": "/sdoc/advanced-chapter/file-system/126b095105912fc87e8eb3f7.html",
                "frontmatter": {
                  "title": "LV010-FATFS简介",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/advanced-chapter/file-system/126b095105912fc87e8eb3f7",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "87e8eb3f76b14573a4c0856bf2257669",
                    "useduuid": "87e8eb3f7"
                  }
                }
              },
              {
                "title": "LV015-基于SPIFLASH移植FATFS",
                "url": "/sdoc/advanced-chapter/file-system/126b0951078a03391bda267a.html",
                "frontmatter": {
                  "title": "LV015-基于SPIFLASH移植FATFS",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/advanced-chapter/file-system/126b0951078a03391bda267a",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "91bda267a4934867a0b05673bbc3ef13",
                    "useduuid": "91bda267a"
                  }
                }
              },
              {
                "title": "LV015-基于SD卡移植FATFS",
                "url": "/sdoc/advanced-chapter/file-system/126b09511b702501a47f120c.html",
                "frontmatter": {
                  "title": "LV015-基于SD卡移植FATFS",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/advanced-chapter/file-system/126b09511b702501a47f120c",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "1a47f120cd8c41b6ab06d05da2ace352",
                    "useduuid": "1a47f120c"
                  }
                }
              },
              {
                "title": "LV025-FATFS中自定义的一些函数",
                "url": "/sdoc/advanced-chapter/file-system/126b09511d060b54b7d725e9.html",
                "frontmatter": {
                  "title": "LV025-FATFS中自定义的一些函数",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/advanced-chapter/file-system/126b09511d060b54b7d725e9",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "4b7d725e9ba54c78945189a9341e3b34",
                    "useduuid": "4b7d725e9"
                  }
                }
              }
            ],
            "frontmatter": {}
          },
          {
            "title": "02-ESP8266",
            "children": [
              {
                "title": "LV001-ESP8266模块简介",
                "url": "/sdoc/advanced-chapter/esp8266/126b0951502d346ca9aa7929.html",
                "frontmatter": {
                  "title": "LV001-ESP8266模块简介",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/advanced-chapter/esp8266/126b0951502d346ca9aa7929",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "ca9aa79298244701abe40ba6e8a3afb0",
                    "useduuid": "ca9aa7929"
                  }
                }
              },
              {
                "title": "LV010-AT指令",
                "url": "/sdoc/advanced-chapter/esp8266/126b095151472d621a6605a9.html",
                "frontmatter": {
                  "title": "LV010-AT指令",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/advanced-chapter/esp8266/126b095151472d621a6605a9",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "21a6605a91b34e7b87e3081f66267021",
                    "useduuid": "21a6605a9"
                  }
                }
              },
              {
                "title": "LV015-ESP8266固件烧录",
                "url": "/sdoc/advanced-chapter/esp8266/126b0951520814de18399844.html",
                "frontmatter": {
                  "title": "LV015-ESP8266固件烧录",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/advanced-chapter/esp8266/126b0951520814de18399844",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "e18399844bf344e3bb81cdc33db73395",
                    "useduuid": "e18399844"
                  }
                }
              },
              {
                "title": "LV020-ATK-ESP8266使用实例",
                "url": "/sdoc/advanced-chapter/esp8266/126b095152fb04ead8380cb5.html",
                "frontmatter": {
                  "title": "LV020-ATK-ESP8266使用实例",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/advanced-chapter/esp8266/126b095152fb04ead8380cb5",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "ad8380cb587c446592ab6fa1ae7318fd",
                    "useduuid": "ad8380cb5"
                  }
                }
              }
            ],
            "frontmatter": {}
          },
          {
            "title": "03-OV7725",
            "children": [
              {
                "title": "LV001-ATK-MC6625F模块简介",
                "url": "/sdoc/advanced-chapter/ov7725/126b09516b08191a7bd0fd02.html",
                "frontmatter": {
                  "title": "LV001-ATK-MC6625F模块简介",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/advanced-chapter/ov7725/126b09516b08191a7bd0fd02",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "a7bd0fd0290345cfae6ad4ff74f043f7",
                    "useduuid": "a7bd0fd02"
                  }
                }
              },
              {
                "title": "LV010-SCCB协议简介",
                "url": "/sdoc/advanced-chapter/ov7725/126b09516b6c2fed98855250.html",
                "frontmatter": {
                  "title": "LV010-SCCB协议简介",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/advanced-chapter/ov7725/126b09516b6c2fed98855250",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "d9885525026649bdb9a31be28b79a722",
                    "useduuid": "d98855250"
                  }
                }
              },
              {
                "title": "LV020-OV7725简介",
                "url": "/sdoc/advanced-chapter/ov7725/126b09516bd03c413cd356e8.html",
                "frontmatter": {
                  "title": "LV020-OV7725简介",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/advanced-chapter/ov7725/126b09516bd03c413cd356e8",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "13cd356e84f447f3b52ee1a287368dce",
                    "useduuid": "13cd356e8"
                  }
                }
              }
            ],
            "frontmatter": {}
          },
          {
            "title": "04-显示屏",
            "children": [
              {
                "title": "01-OLED",
                "children": [
                  {
                    "title": "LV001-OLED简介",
                    "url": "/sdoc/advanced-chapter/display/oled/126b09516d6c2a948085516b.html",
                    "frontmatter": {
                      "title": "LV001-OLED简介",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/advanced-chapter/display/oled/126b09516d6c2a948085516b",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "48085516b89044b2a637057cfaac3f5c",
                        "useduuid": "48085516b"
                      }
                    }
                  },
                  {
                    "title": "LV010-8080时序驱动OLED",
                    "url": "/sdoc/advanced-chapter/display/oled/126b09517279099247b327e5.html",
                    "frontmatter": {
                      "title": "LV010-8080时序驱动OLED",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/advanced-chapter/display/oled/126b09517279099247b327e5",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "247b327e5f1747919749deb8038e066d",
                        "useduuid": "247b327e5"
                      }
                    }
                  }
                ],
                "frontmatter": {}
              },
              {
                "title": "02-LCD",
                "children": [
                  {
                    "title": "LV001-LCD简介",
                    "url": "/sdoc/advanced-chapter/display/lcd/126b0951740b3b3a3f69973e.html",
                    "frontmatter": {
                      "title": "LV001-LCD简介",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/advanced-chapter/display/lcd/126b0951740b3b3a3f69973e",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "a3f69973ef4142428240aba5719aeeb0",
                        "useduuid": "a3f69973e"
                      }
                    }
                  },
                  {
                    "title": "LV010-液晶控制原理",
                    "url": "/sdoc/advanced-chapter/display/lcd/126b0951760b03320ea5c5be.html",
                    "frontmatter": {
                      "title": "LV010-液晶控制原理",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/advanced-chapter/display/lcd/126b0951760b03320ea5c5be",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "20ea5c5be93445288eac3b57c2e84f66",
                        "useduuid": "20ea5c5be"
                      }
                    }
                  },
                  {
                    "title": "LV015-ATK-MD0280模块",
                    "url": "/sdoc/advanced-chapter/display/lcd/126b095237661ce983ad47b1.html",
                    "frontmatter": {
                      "title": "LV015-ATK-MD0280模块",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/advanced-chapter/display/lcd/126b095237661ce983ad47b1",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "983ad47b1ccb49c59396418e90556b0c",
                        "useduuid": "983ad47b1"
                      }
                    }
                  },
                  {
                    "title": "LV016-IL9341简介",
                    "url": "/sdoc/advanced-chapter/display/lcd/126b095238ef12080fa9e2fc.html",
                    "frontmatter": {
                      "title": "LV016-IL9341简介",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/advanced-chapter/display/lcd/126b095238ef12080fa9e2fc",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "80fa9e2fc1c846ac9bfafe695ffc6b7d",
                        "useduuid": "80fa9e2fc"
                      }
                    }
                  },
                  {
                    "title": "LV020-FSMC模拟8080时序",
                    "url": "/sdoc/advanced-chapter/display/lcd/126b09523c371707f0bd772f.html",
                    "frontmatter": {
                      "title": "LV020-FSMC模拟8080时序",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/advanced-chapter/display/lcd/126b09523c371707f0bd772f",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "7f0bd772fcbd424ab2f5aaf94abf65ff",
                        "useduuid": "7f0bd772f"
                      }
                    }
                  },
                  {
                    "title": "LV025-LCD显示实例",
                    "url": "/sdoc/advanced-chapter/display/lcd/126b095253d9037570d31d42.html",
                    "frontmatter": {
                      "title": "LV025-LCD显示实例",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/advanced-chapter/display/lcd/126b095253d9037570d31d42",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "570d31d42d894e208a1fb9d5c484e257",
                        "useduuid": "570d31d42"
                      }
                    }
                  },
                  {
                    "title": "LV030-字符编码基础",
                    "url": "/sdoc/advanced-chapter/display/lcd/126b095255800a53f67e99cc.html",
                    "frontmatter": {
                      "title": "LV030-字符编码基础",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/advanced-chapter/display/lcd/126b095255800a53f67e99cc",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "3f67e99cc1774328be76eff3ae429948",
                        "useduuid": "3f67e99cc"
                      }
                    }
                  },
                  {
                    "title": "LV035-中英文的显示",
                    "url": "/sdoc/advanced-chapter/display/lcd/126b0952576b3df0941e36ed.html",
                    "frontmatter": {
                      "title": "LV035-中英文的显示",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/advanced-chapter/display/lcd/126b0952576b3df0941e36ed",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "0941e36ed35b4da7a71acace5c8d2e0d",
                        "useduuid": "0941e36ed"
                      }
                    }
                  },
                  {
                    "title": "LV040-实现任意大小字模",
                    "url": "/sdoc/advanced-chapter/display/lcd/126b09525e7116330989fbcc.html",
                    "frontmatter": {
                      "title": "LV040-实现任意大小字模",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/advanced-chapter/display/lcd/126b09525e7116330989fbcc",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "30989fbcc8354f6baad6455294de0120",
                        "useduuid": "30989fbcc"
                      }
                    }
                  }
                ],
                "frontmatter": {}
              }
            ],
            "frontmatter": {}
          },
          {
            "title": "90-FreeRTOS",
            "children": [
              {
                "title": "01-FreeRTOS简介",
                "children": [
                  {
                    "title": "LV001-FreeRTOS简介",
                    "url": "/docs/126b096ee4d10f3bb564b607.html",
                    "frontmatter": {
                      "title": "LV001-FreeRTOS简介",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/docs/126b096ee4d10f3bb564b607",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "bb564b607089439882d4247b57282de9",
                        "useduuid": "bb564b607"
                      }
                    }
                  }
                ],
                "frontmatter": {}
              }
            ],
            "frontmatter": {}
          }
        ]
      },
      "sdoc/60-通信专题/01-I2C协议": {
        "url": "sdoc/communication/i2c/126b09043eec0234d430a608.html",
        "filePath": "sdoc/60-通信专题/01-I2C协议/index",
        "catalogues": [
          {
            "title": "LV001-I2C简介",
            "url": "/sdoc/communication/i2c/126b09043f2d250b963bfb0d.html",
            "frontmatter": {
              "title": "LV001-I2C简介",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/communication/i2c/126b09043f2d250b963bfb0d",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "b963bfb0deb74fcaa8f060b7b084d3d8",
                "useduuid": "b963bfb0d"
              }
            }
          },
          {
            "title": "LV020-AT24C02实例分析",
            "url": "/sdoc/communication/i2c/126b09043fca31869028172d.html",
            "frontmatter": {
              "title": "LV020-AT24C02实例分析",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/communication/i2c/126b09043fca31869028172d",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "69028172daa144dcbab34851329c3348",
                "useduuid": "69028172d"
              }
            }
          }
        ]
      },
      "sdoc/60-通信专题/10-串口": {
        "url": "sdoc/communication/serial-port/126b09044209398a673e2151.html",
        "filePath": "sdoc/60-通信专题/10-串口/index",
        "catalogues": [
          {
            "title": "LV001-串口通信简介",
            "url": "/sdoc/communication/serial-port/126b0904421d06db7b197798.html",
            "frontmatter": {
              "title": "LV001-串口通信简介",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/communication/serial-port/126b0904421d06db7b197798",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "b7b197798fd74f3fb97abd23e12eb7bc",
                "useduuid": "b7b197798"
              }
            }
          },
          {
            "title": "LV020-RS232简介",
            "url": "/sdoc/communication/serial-port/126b0950f26b1afbd6db3885.html",
            "frontmatter": {
              "title": "LV020-RS232简介",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/communication/serial-port/126b0950f26b1afbd6db3885",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "bd6db38856214d8db0d0697d94245e7d",
                "useduuid": "bd6db3885"
              }
            }
          },
          {
            "title": "LV030-RS485简介",
            "url": "/sdoc/communication/serial-port/126b0950f287303e7c68cbb5.html",
            "frontmatter": {
              "title": "LV030-RS485简介",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/communication/serial-port/126b0950f287303e7c68cbb5",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "e7c68cbb501d41a4be750e720e3a5e0a",
                "useduuid": "e7c68cbb5"
              }
            }
          }
        ]
      },
      "sdoc/60-通信专题/30-SPI": {
        "url": "sdoc/communication/spi/126b0950dce32a071f087087.html",
        "filePath": "sdoc/60-通信专题/30-SPI/index",
        "catalogues": [
          {
            "title": "LV001-SPI简介",
            "url": "/sdoc/communication/spi/126b0950dceb1d850b1e36d8.html",
            "frontmatter": {
              "title": "LV001-SPI简介",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/communication/spi/126b0950dceb1d850b1e36d8",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "50b1e36d86eb4c0e85c11fe350fcd877",
                "useduuid": "50b1e36d8"
              }
            }
          }
        ]
      },
      "sdoc/60-通信专题/40-CAN": {
        "url": "sdoc/communication/can/126b0950f33c30cca3fe3d80.html",
        "filePath": "sdoc/60-通信专题/40-CAN/index",
        "catalogues": [
          {
            "title": "LV001-CAN通信简介",
            "url": "/sdoc/communication/can/126b0950f34624bdf8f7407f.html",
            "frontmatter": {
              "title": "LV001-CAN通信简介",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/communication/can/126b0950f34624bdf8f7407f",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "df8f7407fc324becb0237697f4ea8f9c",
                "useduuid": "df8f7407f"
              }
            }
          }
        ]
      },
      "sdoc/60-通信专题": {
        "url": "sdoc/communication/126b09043d6f181654856443.html",
        "filePath": "sdoc/60-通信专题/index",
        "catalogues": [
          {
            "title": "01-I2C协议",
            "children": [
              {
                "title": "LV001-I2C简介",
                "url": "/sdoc/communication/i2c/126b09043f2d250b963bfb0d.html",
                "frontmatter": {
                  "title": "LV001-I2C简介",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/communication/i2c/126b09043f2d250b963bfb0d",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "b963bfb0deb74fcaa8f060b7b084d3d8",
                    "useduuid": "b963bfb0d"
                  }
                }
              },
              {
                "title": "LV020-AT24C02实例分析",
                "url": "/sdoc/communication/i2c/126b09043fca31869028172d.html",
                "frontmatter": {
                  "title": "LV020-AT24C02实例分析",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/communication/i2c/126b09043fca31869028172d",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "69028172daa144dcbab34851329c3348",
                    "useduuid": "69028172d"
                  }
                }
              }
            ],
            "frontmatter": {}
          },
          {
            "title": "10-串口",
            "children": [
              {
                "title": "LV001-串口通信简介",
                "url": "/sdoc/communication/serial-port/126b0904421d06db7b197798.html",
                "frontmatter": {
                  "title": "LV001-串口通信简介",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/communication/serial-port/126b0904421d06db7b197798",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "b7b197798fd74f3fb97abd23e12eb7bc",
                    "useduuid": "b7b197798"
                  }
                }
              },
              {
                "title": "LV020-RS232简介",
                "url": "/sdoc/communication/serial-port/126b0950f26b1afbd6db3885.html",
                "frontmatter": {
                  "title": "LV020-RS232简介",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/communication/serial-port/126b0950f26b1afbd6db3885",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "bd6db38856214d8db0d0697d94245e7d",
                    "useduuid": "bd6db3885"
                  }
                }
              },
              {
                "title": "LV030-RS485简介",
                "url": "/sdoc/communication/serial-port/126b0950f287303e7c68cbb5.html",
                "frontmatter": {
                  "title": "LV030-RS485简介",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/communication/serial-port/126b0950f287303e7c68cbb5",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "e7c68cbb501d41a4be750e720e3a5e0a",
                    "useduuid": "e7c68cbb5"
                  }
                }
              }
            ],
            "frontmatter": {}
          },
          {
            "title": "30-SPI",
            "children": [
              {
                "title": "LV001-SPI简介",
                "url": "/sdoc/communication/spi/126b0950dceb1d850b1e36d8.html",
                "frontmatter": {
                  "title": "LV001-SPI简介",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/communication/spi/126b0950dceb1d850b1e36d8",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "50b1e36d86eb4c0e85c11fe350fcd877",
                    "useduuid": "50b1e36d8"
                  }
                }
              }
            ],
            "frontmatter": {}
          },
          {
            "title": "40-CAN",
            "children": [
              {
                "title": "LV001-CAN通信简介",
                "url": "/sdoc/communication/can/126b0950f34624bdf8f7407f.html",
                "frontmatter": {
                  "title": "LV001-CAN通信简介",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/communication/can/126b0950f34624bdf8f7407f",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "df8f7407fc324becb0237697f4ea8f9c",
                    "useduuid": "df8f7407f"
                  }
                }
              }
            ],
            "frontmatter": {}
          },
          {
            "title": "LV001-通信概述",
            "url": "/sdoc/communication/126b09043e1c12685fda3fb8.html",
            "frontmatter": {
              "title": "LV001-通信概述",
              "date": {},
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/communication/126b09043e1c12685fda3fb8",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "85fda3fb8df54e90807dd03d5831b5bf",
                "useduuid": "85fda3fb8"
              }
            }
          }
        ]
      },
      "sdoc": {
        "url": "sdoc/126b08a8af2414bbd46eede1.html",
        "filePath": "sdoc/index",
        "catalogues": [
          {
            "title": "01-开发工具",
            "children": [
              {
                "title": "01-keil",
                "children": [
                  {
                    "title": "LV001-keil简介",
                    "url": "/sdoc/dev-tool/keil/126b08a8b79e2ecaa634dd81.html",
                    "frontmatter": {
                      "title": "LV001-keil简介",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/dev-tool/keil/126b08a8b79e2ecaa634dd81",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "aa634dd813594b2686f1ae7b5b6911d4",
                        "useduuid": "aa634dd81"
                      }
                    }
                  },
                  {
                    "title": "LV002-工程创建",
                    "url": "/sdoc/dev-tool/keil/126b08aa5e32382c0ab32a01.html",
                    "frontmatter": {
                      "title": "LV002-工程创建",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/dev-tool/keil/126b08aa5e32382c0ab32a01",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "c0ab32a01a744756b6c0c3e4231ed9aa",
                        "useduuid": "c0ab32a01"
                      }
                    }
                  },
                  {
                    "title": "LV010-程序与编译",
                    "url": "/sdoc/dev-tool/keil/126b08e6a9c4187125e57a5f.html",
                    "frontmatter": {
                      "title": "LV010-程序与编译",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/dev-tool/keil/126b08e6a9c4187125e57a5f",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "125e57a5ff854ebaa58b6fff51b99a11",
                        "useduuid": "125e57a5f"
                      }
                    }
                  },
                  {
                    "title": "LV015-MDK工程文件简介",
                    "url": "/sdoc/dev-tool/keil/126b0913857d3670d6f0eef1.html",
                    "frontmatter": {
                      "title": "LV015-MDK工程文件简介",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/dev-tool/keil/126b0913857d3670d6f0eef1",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "0d6f0eef153042fc862dc752cb0e3c2d",
                        "useduuid": "0d6f0eef1"
                      }
                    }
                  },
                  {
                    "title": "LV016-Output目录文件",
                    "url": "/sdoc/dev-tool/keil/126b091384f9220a0ff9cf1d.html",
                    "frontmatter": {
                      "title": "LV016-Output目录文件",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/dev-tool/keil/126b091384f9220a0ff9cf1d",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "a0ff9cf1dff34a1790997424e34bac30",
                        "useduuid": "a0ff9cf1d"
                      }
                    }
                  },
                  {
                    "title": "LV017-Listing目录文件",
                    "url": "/sdoc/dev-tool/keil/126b0913865605b5493dc70e.html",
                    "frontmatter": {
                      "title": "LV017-Listing目录文件",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/dev-tool/keil/126b0913865605b5493dc70e",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "5493dc70ee6849e0b32a91f39d8e2488",
                        "useduuid": "5493dc70e"
                      }
                    }
                  },
                  {
                    "title": "LV020-SCT分散加载文件",
                    "url": "/sdoc/dev-tool/keil/126b08e6cfb5032dbc05b46a.html",
                    "frontmatter": {
                      "title": "LV020-SCT分散加载文件",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/dev-tool/keil/126b08e6cfb5032dbc05b46a",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "dbc05b46abca47d8a176762f5148dc50",
                        "useduuid": "dbc05b46a"
                      }
                    }
                  },
                  {
                    "title": "LV025-SCT文件应用",
                    "url": "/sdoc/dev-tool/keil/126b08e6d335070a7fd1934d.html",
                    "frontmatter": {
                      "title": "LV025-SCT文件应用",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/dev-tool/keil/126b08e6d335070a7fd1934d",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "a7fd1934dbcb4eef93f57d3dce4e0059",
                        "useduuid": "a7fd1934d"
                      }
                    }
                  },
                  {
                    "title": "LV040-在线调试",
                    "url": "/sdoc/dev-tool/keil/126b08e76d70287e70afead6.html",
                    "frontmatter": {
                      "title": "LV040-在线调试",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/dev-tool/keil/126b08e76d70287e70afead6",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "e70afead6dd14692ad3b3749eb2cad4d",
                        "useduuid": "e70afead6"
                      }
                    }
                  }
                ],
                "frontmatter": {}
              },
              {
                "title": "02-STM32Cube",
                "children": [
                  {
                    "title": "LV001-STM32CubeMX简介",
                    "url": "/sdoc/dev-tool/stm32cube/126b08aa58bc0838d250f7bd.html",
                    "frontmatter": {
                      "title": "LV001-STM32CubeMX简介",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/dev-tool/stm32cube/126b08aa58bc0838d250f7bd",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "8d250f7bdb9d4b4fb822b135635cdf20",
                        "useduuid": "8d250f7bd"
                      }
                    }
                  },
                  {
                    "title": "LV002-STM32CubeMX工程创建",
                    "url": "/sdoc/dev-tool/stm32cube/126b08aaf7c11b6e19f8d60a.html",
                    "frontmatter": {
                      "title": "LV002-STM32CubeMX工程创建",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/dev-tool/stm32cube/126b08aaf7c11b6e19f8d60a",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "e19f8d60a0f64d51a22bc5a8a04bf26f",
                        "useduuid": "e19f8d60a"
                      }
                    }
                  },
                  {
                    "title": "LV010-Makefile管理工程",
                    "url": "/sdoc/dev-tool/stm32cube/126b08e6edcf211c7df7916d.html",
                    "frontmatter": {
                      "title": "LV010-Makefile管理工程",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/dev-tool/stm32cube/126b08e6edcf211c7df7916d",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "c7df7916d51c40f295ec8bdf0e20a228",
                        "useduuid": "c7df7916d"
                      }
                    }
                  },
                  {
                    "title": "LV012-Makefile文件分析",
                    "url": "/sdoc/dev-tool/stm32cube/126b08e6ef7626b7c442bfe2.html",
                    "frontmatter": {
                      "title": "LV012-Makefile文件分析",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/dev-tool/stm32cube/126b08e6ef7626b7c442bfe2",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "7c442bfe2f7348608819bf852cebb54e",
                        "useduuid": "7c442bfe2"
                      }
                    }
                  },
                  {
                    "title": "LV040-LD链接脚本",
                    "url": "/sdoc/dev-tool/keil/126b08e6f2e40a653e71bc02.html",
                    "frontmatter": {
                      "title": "LV040-LD链接脚本",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/dev-tool/keil/126b08e6f2e40a653e71bc02",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "53e71bc02dd346aeac5749700b205317",
                        "useduuid": "53e71bc02"
                      }
                    }
                  },
                  {
                    "title": "LV030-STM32CubeIDE",
                    "url": "/sdoc/dev-tool/stm32cube/126b08e6f0211b46eabe9106.html",
                    "frontmatter": {
                      "title": "LV030-STM32CubeIDE",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/dev-tool/stm32cube/126b08e6f0211b46eabe9106",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "6eabe9106e39465d81b7853e19f74deb",
                        "useduuid": "6eabe9106"
                      }
                    }
                  }
                ],
                "frontmatter": {}
              },
              {
                "title": "10-下载与调试",
                "children": [
                  {
                    "title": "LV001-下载与调试概述",
                    "url": "/sdoc/dev-tool/burn-and-debug/126b08ab16fa3e011692369d.html",
                    "frontmatter": {
                      "title": "LV001-下载与调试概述",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/dev-tool/burn-and-debug/126b08ab16fa3e011692369d",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "11692369dc744332bc6f2569dd8ec58a",
                        "useduuid": "11692369d"
                      }
                    }
                  },
                  {
                    "title": "LV002-JLink怎么使用",
                    "url": "/sdoc/dev-tool/burn-and-debug/126b08ab15ee0921c4f7fd64.html",
                    "frontmatter": {
                      "title": "LV002-JLink怎么使用",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/dev-tool/burn-and-debug/126b08ab15ee0921c4f7fd64",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "1c4f7fd64909407cb589ad3348a0c376",
                        "useduuid": "1c4f7fd64"
                      }
                    }
                  },
                  {
                    "title": "LV010-JFlash简介",
                    "url": "/sdoc/dev-tool/burn-and-debug/126b08b7f6ce25a6c770f3b5.html",
                    "frontmatter": {
                      "title": "LV010-JFlash简介",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/dev-tool/burn-and-debug/126b08b7f6ce25a6c770f3b5",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "6c770f3b50d84d7fad7f77bc05f872fc",
                        "useduuid": "6c770f3b5"
                      }
                    }
                  },
                  {
                    "title": "LV015-STLink怎么使用",
                    "url": "/sdoc/dev-tool/burn-and-debug/126b08b9c98b11187c20e13a.html",
                    "frontmatter": {
                      "title": "LV015-STLink怎么使用",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/dev-tool/burn-and-debug/126b08b9c98b11187c20e13a",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "87c20e13a48a44dfb380f22a1b102e34",
                        "useduuid": "87c20e13a"
                      }
                    }
                  },
                  {
                    "title": "LV020-ST-LINK-Utility简介",
                    "url": "/sdoc/dev-tool/burn-and-debug/126b08b9cb90276fafba387f.html",
                    "frontmatter": {
                      "title": "LV020-ST-LINK-Utility简介",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/dev-tool/burn-and-debug/126b08b9cb90276fafba387f",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "fafba387f5f84aab849e4d8b464e22ad",
                        "useduuid": "fafba387f"
                      }
                    }
                  },
                  {
                    "title": "LV030-串口下载",
                    "url": "/sdoc/dev-tool/burn-and-debug/126b08b9cea618afd74b243b.html",
                    "frontmatter": {
                      "title": "LV030-串口下载",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/dev-tool/burn-and-debug/126b08b9cea618afd74b243b",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "fd74b243b22149fe9c55a56a7b50b6d5",
                        "useduuid": "fd74b243b"
                      }
                    }
                  }
                ],
                "frontmatter": {}
              }
            ],
            "frontmatter": {}
          },
          {
            "title": "10-基础篇",
            "children": [
              {
                "title": "01-概述",
                "children": [
                  {
                    "title": "LV001-ARM体系结构",
                    "url": "/sdoc/basic/overview/126b08ba0eae364f31526d00.html",
                    "frontmatter": {
                      "title": "LV001-ARM体系结构",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/basic/overview/126b08ba0eae364f31526d00",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "f31526d004e841cf942bb1c43e30f261",
                        "useduuid": "f31526d00"
                      }
                    }
                  },
                  {
                    "title": "LV010-常见存储器",
                    "url": "/sdoc/basic/overview/126b08ba13b3329986816cf4.html",
                    "frontmatter": {
                      "title": "LV010-常见存储器",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/basic/overview/126b08ba13b3329986816cf4",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "986816cf43ae496ea97f2ac2344cf4bc",
                        "useduuid": "986816cf4"
                      }
                    }
                  },
                  {
                    "title": "LV020-CortexM0简介",
                    "url": "/sdoc/basic/overview/126b08c738bc16b5b982661d.html",
                    "frontmatter": {
                      "title": "LV020-CortexM0简介",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/basic/overview/126b08c738bc16b5b982661d",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "5b982661dbf54e3db91954b53e220c58",
                        "useduuid": "5b982661d"
                      }
                    }
                  },
                  {
                    "title": "LV022-CortexM0存储器映射",
                    "url": "/sdoc/basic/overview/126b08e6a7051c291c1151a6.html",
                    "frontmatter": {
                      "title": "LV022-CortexM0存储器映射",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/basic/overview/126b08e6a7051c291c1151a6",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "91c1151a6b3c4a07b26e0383912b8543",
                        "useduuid": "91c1151a6"
                      }
                    }
                  },
                  {
                    "title": "LV030-CortexM3简介",
                    "url": "/sdoc/basic/overview/126b08c73a222946645cba90.html",
                    "frontmatter": {
                      "title": "LV030-CortexM3简介",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/basic/overview/126b08c73a222946645cba90",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "6645cba90f414432ac823c9d1938fc37",
                        "useduuid": "6645cba90"
                      }
                    }
                  },
                  {
                    "title": "LV035-CortexM3存储器系统",
                    "url": "/sdoc/basic/overview/126b08c73d361161792b640a.html",
                    "frontmatter": {
                      "title": "LV035-CortexM3存储器系统",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/basic/overview/126b08c73d361161792b640a",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "1792b640ad2b40c1a34cc0ea4da24ed9",
                        "useduuid": "1792b640a"
                      }
                    }
                  },
                  {
                    "title": "LV040-CortexM3异常",
                    "url": "/sdoc/basic/overview/126b08e5d7b911b28ed9ee4c.html",
                    "frontmatter": {
                      "title": "LV040-CortexM3异常",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/basic/overview/126b08e5d7b911b28ed9ee4c",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "28ed9ee4c4ee4374a05b403be9d08519",
                        "useduuid": "28ed9ee4c"
                      }
                    }
                  },
                  {
                    "title": "LV040-CortexM3的NVIC中断控制",
                    "url": "/sdoc/basic/overview/126b08e5fb5429a0009ffc8b.html",
                    "frontmatter": {
                      "title": "LV040-CortexM3的NVIC中断控制",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/basic/overview/126b08e5fb5429a0009ffc8b",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "0009ffc8b07a4e459a29f0ba0518592b",
                        "useduuid": "0009ffc8b"
                      }
                    }
                  }
                ],
                "frontmatter": {}
              },
              {
                "title": "10-STM32基础",
                "children": [
                  {
                    "title": "LV001-STM32概述",
                    "url": "/sdoc/basic/stm32basic/126b08e5feaa2043ad05a48e.html",
                    "frontmatter": {
                      "title": "LV001-STM32概述",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/basic/stm32basic/126b08e5feaa2043ad05a48e",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "3ad05a48eac840679287e1b2301b039a",
                        "useduuid": "3ad05a48e"
                      }
                    }
                  },
                  {
                    "title": "LV010-嵌入式C语言",
                    "url": "/sdoc/basic/stm32basic/126b08e600543a33cc0a657a.html",
                    "frontmatter": {
                      "title": "LV010-嵌入式C语言",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/basic/stm32basic/126b08e600543a33cc0a657a",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "3cc0a657a05d403785cc85fa30a99505",
                        "useduuid": "3cc0a657a"
                      }
                    }
                  },
                  {
                    "title": "LV020-STM32怎么开发",
                    "url": "/sdoc/basic/stm32basic/126b08e603011c2e21862cc6.html",
                    "frontmatter": {
                      "title": "LV020-STM32怎么开发",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/basic/stm32basic/126b08e603011c2e21862cc6",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "e21862cc6b54423c827258b8732bcdd8",
                        "useduuid": "e21862cc6"
                      }
                    }
                  },
                  {
                    "title": "LV021-认识HAL库",
                    "url": "/sdoc/basic/stm32basic/126b08e608d01035e7260fce.html",
                    "frontmatter": {
                      "title": "LV021-认识HAL库",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/basic/stm32basic/126b08e608d01035e7260fce",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "5e7260fce3184ab293e2a218bc58687b",
                        "useduuid": "5e7260fce"
                      }
                    }
                  },
                  {
                    "title": "LV030-STM32程序下载",
                    "url": "/sdoc/basic/stm32basic/126b08e7828f108bc0b2f2dc.html",
                    "frontmatter": {
                      "title": "LV030-STM32程序下载",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/basic/stm32basic/126b08e7828f108bc0b2f2dc",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "bc0b2f2dc98042cb8e44dc7aa1995faa",
                        "useduuid": "bc0b2f2dc"
                      }
                    }
                  },
                  {
                    "title": "LV040-STM32系统架构",
                    "url": "/sdoc/basic/stm32basic/126b08e6831f0a0031c3f015.html",
                    "frontmatter": {
                      "title": "LV040-STM32系统架构",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/basic/stm32basic/126b08e6831f0a0031c3f015",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "031c3f0159bd41bfa7f2e89f6b50e340",
                        "useduuid": "031c3f015"
                      }
                    }
                  },
                  {
                    "title": "LV045-STM32存储器系统",
                    "url": "/sdoc/basic/stm32basic/126b08e6840f3457e72c8780.html",
                    "frontmatter": {
                      "title": "LV045-STM32存储器系统",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/basic/stm32basic/126b08e6840f3457e72c8780",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "7e72c87803ee4322bcd1072590f70cb3",
                        "useduuid": "7e72c8780"
                      }
                    }
                  },
                  {
                    "title": "LV050-STM32地址重映射",
                    "url": "/sdoc/basic/stm32basic/126b08e6a53918eab18839bd.html",
                    "frontmatter": {
                      "title": "LV050-STM32地址重映射",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/basic/stm32basic/126b08e6a53918eab18839bd",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "ab18839bd52b440b9ca51fa34ea3d714",
                        "useduuid": "ab18839bd"
                      }
                    }
                  }
                ],
                "frontmatter": {}
              },
              {
                "title": "20-STM32的启动",
                "children": [
                  {
                    "title": "LV001-启动文件",
                    "url": "/sdoc/basic/stm32setup/126b08e788e83383285742cb.html",
                    "frontmatter": {
                      "title": "LV001-启动文件",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/basic/stm32setup/126b08e788e83383285742cb",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "3285742cb8d24fba98867646d8e8231b",
                        "useduuid": "3285742cb"
                      }
                    }
                  },
                  {
                    "title": "LV005-启动过程",
                    "url": "/sdoc/basic/stm32setup/126b08e78de70b59cd9ba362.html",
                    "frontmatter": {
                      "title": "LV005-启动过程",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/basic/stm32setup/126b08e78de70b59cd9ba362",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "9cd9ba36208d49f99352645293a0d904",
                        "useduuid": "9cd9ba362"
                      }
                    }
                  },
                  {
                    "title": "LV010-在内部SRAM调试",
                    "url": "/sdoc/basic/stm32setup/126b08e7afad049a561ccf1b.html",
                    "frontmatter": {
                      "title": "LV010-在内部SRAM调试",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/basic/stm32setup/126b08e7afad049a561ccf1b",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "a561ccf1b5d3443c85b0f21280803c3a",
                        "useduuid": "a561ccf1b"
                      }
                    }
                  }
                ],
                "frontmatter": {}
              },
              {
                "title": "30-STM32的中断",
                "children": [
                  {
                    "title": "LV001-STM32中断简介",
                    "url": "/sdoc/basic/stm32interrupt/126b08f57241322fa604782d.html",
                    "frontmatter": {
                      "title": "LV001-STM32中断简介",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/basic/stm32interrupt/126b08f57241322fa604782d",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "fa604782d9e94117829d0f1a00c0d99d",
                        "useduuid": "fa604782d"
                      }
                    }
                  }
                ],
                "frontmatter": {}
              },
              {
                "title": "40-STM32时钟",
                "children": [
                  {
                    "title": "LV001-STM32F1时钟系统",
                    "url": "/sdoc/basic/stm32clock/126b08f5d89727a6ee395582.html",
                    "frontmatter": {
                      "title": "LV001-STM32F1时钟系统",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/basic/stm32clock/126b08f5d89727a6ee395582",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "6ee395582b8f401e806f3f6b8aac7e4a",
                        "useduuid": "6ee395582"
                      }
                    }
                  },
                  {
                    "title": "LV010-STM32F1的SYSCLK",
                    "url": "/sdoc/basic/stm32clock/126b08f5dcd1392ef8558043.html",
                    "frontmatter": {
                      "title": "LV010-STM32F1的SYSCLK",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/basic/stm32clock/126b08f5dcd1392ef8558043",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "ef8558043211434e9696dd7586e40951",
                        "useduuid": "ef8558043"
                      }
                    }
                  }
                ],
                "frontmatter": {}
              },
              {
                "title": "50-STM32内部FLASH",
                "children": [
                  {
                    "title": "LV001-内部FLASH简介",
                    "url": "/sdoc/basic/stm32flash/126b09345207167f3ed95339.html",
                    "frontmatter": {
                      "title": "LV001-内部FLASH简介",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/basic/stm32flash/126b09345207167f3ed95339",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "f3ed95339a054335bd7861fbbdfca984",
                        "useduuid": "f3ed95339"
                      }
                    }
                  },
                  {
                    "title": "LV010-FLASH操作流程",
                    "url": "/sdoc/basic/stm32flash/126b0934555e1e98aa9081c5.html",
                    "frontmatter": {
                      "title": "LV010-FLASH操作流程",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/basic/stm32flash/126b0934555e1e98aa9081c5",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "8aa9081c5bfb4658bc14302518ab96b3",
                        "useduuid": "8aa9081c5"
                      }
                    }
                  },
                  {
                    "title": "LV020-IAP编程简介",
                    "url": "/sdoc/basic/stm32flash/126b0e26745a3124f27972bd.html",
                    "frontmatter": {
                      "title": "LV020-IAP编程简介",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/basic/stm32flash/126b0e26745a3124f27972bd",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "4f27972bd3fc4860b4605d3ba9d93bb7",
                        "useduuid": "4f27972bd"
                      }
                    }
                  },
                  {
                    "title": "LV025-IAP编程实现",
                    "url": "/sdoc/basic/stm32flash/126b0e4540061175c7584cc2.html",
                    "frontmatter": {
                      "title": "LV025-IAP编程实现",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/basic/stm32flash/126b0e4540061175c7584cc2",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "5c7584cc23ea451aaa122d51f3053c7c",
                        "useduuid": "5c7584cc2"
                      }
                    }
                  }
                ],
                "frontmatter": {}
              },
              {
                "title": "60-STM32的内存",
                "children": [
                  {
                    "title": "LV001-STM32内存简介",
                    "url": "/sdoc/basic/stm32memory/126b0941431c016e4bdd2a68.html",
                    "frontmatter": {
                      "title": "LV001-STM32内存简介",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/basic/stm32memory/126b0941431c016e4bdd2a68",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "e4bdd2a68030419b91dea7af452724aa",
                        "useduuid": "e4bdd2a68"
                      }
                    }
                  },
                  {
                    "title": "LV010-内存管理",
                    "url": "/sdoc/basic/stm32memory/126b0e24d5e326e3a7296e85.html",
                    "frontmatter": {
                      "title": "LV010-内存管理",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/basic/stm32memory/126b0e24d5e326e3a7296e85",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "3a7296e85ae54af393dd0790947698ce",
                        "useduuid": "3a7296e85"
                      }
                    }
                  }
                ],
                "frontmatter": {}
              },
              {
                "title": "70-STM32电源管理",
                "children": [
                  {
                    "title": "LV001-电源管理简介",
                    "url": "/sdoc/basic/stm32pwr/126b09513f17393c50358806.html",
                    "frontmatter": {
                      "title": "LV001-电源管理简介",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/basic/stm32pwr/126b09513f17393c50358806",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "c503588060cf485a965221f48977e91d",
                        "useduuid": "c50358806"
                      }
                    }
                  },
                  {
                    "title": "LV010-三种模式实现",
                    "url": "/sdoc/basic/stm32pwr/126b095140443bc89b1ebe84.html",
                    "frontmatter": {
                      "title": "LV010-三种模式实现",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/basic/stm32pwr/126b095140443bc89b1ebe84",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "89b1ebe841074780aa0a2abaac3caa24",
                        "useduuid": "89b1ebe84"
                      }
                    }
                  }
                ],
                "frontmatter": {}
              }
            ],
            "frontmatter": {}
          },
          {
            "title": "20-基本外设篇",
            "children": [
              {
                "title": "01-GPIO",
                "children": [
                  {
                    "title": "LV001-STM32的GPIO简介",
                    "url": "/sdoc/peripheral/gpio/126b08e802d21f6e4f658296.html",
                    "frontmatter": {
                      "title": "LV001-STM32的GPIO简介",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/peripheral/gpio/126b08e802d21f6e4f658296",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "e4f658296d8f440694a80e81f31777d4",
                        "useduuid": "e4f658296"
                      }
                    }
                  },
                  {
                    "title": "LV010-输入输出模式详解",
                    "url": "/sdoc/peripheral/gpio/126b08e804d303ad5b541ecd.html",
                    "frontmatter": {
                      "title": "LV010-输入输出模式详解",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/peripheral/gpio/126b08e804d303ad5b541ecd",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "d5b541ecde0f4e1799e17d09e88a33fa",
                        "useduuid": "d5b541ecd"
                      }
                    }
                  },
                  {
                    "title": "LV020-GPIO控制LED",
                    "url": "/sdoc/peripheral/gpio/126b08e805ca1e15c40474c4.html",
                    "frontmatter": {
                      "title": "LV020-GPIO控制LED",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/peripheral/gpio/126b08e805ca1e15c40474c4",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "5c40474c47fc44e49114f4489f7fb359",
                        "useduuid": "5c40474c4"
                      }
                    }
                  },
                  {
                    "title": "LV030-按键检测",
                    "url": "/sdoc/peripheral/gpio/126b08e8078f1f2b7ad1d6a6.html",
                    "frontmatter": {
                      "title": "LV030-按键检测",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/peripheral/gpio/126b08e8078f1f2b7ad1d6a6",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "b7ad1d6a65df41fab1ae6bd4b2de28b9",
                        "useduuid": "b7ad1d6a6"
                      }
                    }
                  },
                  {
                    "title": "LV040-外部中断",
                    "url": "/sdoc/peripheral/gpio/126b08f58a5c2c09e1d6100f.html",
                    "frontmatter": {
                      "title": "LV040-外部中断",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/peripheral/gpio/126b08f58a5c2c09e1d6100f",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "9e1d6100f7d74737974bd9674a8ba8c0",
                        "useduuid": "9e1d6100f"
                      }
                    }
                  },
                  {
                    "title": "LV045-外部中断实例",
                    "url": "/sdoc/peripheral/gpio/126b08f596281cc89a3bc4c6.html",
                    "frontmatter": {
                      "title": "LV045-外部中断实例",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/peripheral/gpio/126b08f596281cc89a3bc4c6",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "89a3bc4c6a9b4249afce4152ca5d1241",
                        "useduuid": "89a3bc4c6"
                      }
                    }
                  }
                ],
                "frontmatter": {}
              },
              {
                "title": "10-UART",
                "children": [
                  {
                    "title": "LV001-串口通信简介",
                    "url": "/sdoc/peripheral/uart/126b08f60edb3b6ac7962cbf.html",
                    "frontmatter": {
                      "title": "LV001-串口通信简介",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/peripheral/uart/126b08f60edb3b6ac7962cbf",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "ac7962cbf7d245659539f5436bb59e37",
                        "useduuid": "ac7962cbf"
                      }
                    }
                  },
                  {
                    "title": "LV010-STM32的串口",
                    "url": "/sdoc/peripheral/uart/126b08f6146d2d238b102738.html",
                    "frontmatter": {
                      "title": "LV010-STM32的串口",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/peripheral/uart/126b08f6146d2d238b102738",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "38b1027380d146cb959e571687931c97",
                        "useduuid": "38b102738"
                      }
                    }
                  },
                  {
                    "title": "LV020-串口收发实例",
                    "url": "/sdoc/peripheral/uart/126b08f61664097f4a0617fc.html",
                    "frontmatter": {
                      "title": "LV020-串口收发实例",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/peripheral/uart/126b08f61664097f4a0617fc",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "f4a0617fc94447a8962e262d9db98842",
                        "useduuid": "f4a0617fc"
                      }
                    }
                  }
                ],
                "frontmatter": {}
              },
              {
                "title": "15-定时器",
                "children": [
                  {
                    "title": "LV001-基本定时器简介",
                    "url": "/sdoc/peripheral/timer/basic/126b08f6a8e32e3427f3a2b2.html",
                    "frontmatter": {
                      "title": "LV001-基本定时器简介",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/peripheral/timer/basic/126b08f6a8e32e3427f3a2b2",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "427f3a2b26fc476299e1f6f52f2c33ad",
                        "useduuid": "427f3a2b2"
                      }
                    }
                  },
                  {
                    "title": "LV030-通用定时器简介",
                    "url": "/sdoc/peripheral/timer/126b08f6aa441b536809798e.html",
                    "frontmatter": {
                      "title": "LV030-通用定时器简介",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/peripheral/timer/126b08f6aa441b536809798e",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "36809798e68046309b813b9706a23f8a",
                        "useduuid": "36809798e"
                      }
                    }
                  },
                  {
                    "title": "LV035-通用定时器的中断",
                    "url": "/sdoc/peripheral/timer/126b08f6aa9f293ebbce26b2.html",
                    "frontmatter": {
                      "title": "LV035-通用定时器的中断",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/peripheral/timer/126b08f6aa9f293ebbce26b2",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "ebbce26b2eed4f0e8e7db13c33566c30",
                        "useduuid": "ebbce26b2"
                      }
                    }
                  },
                  {
                    "title": "LV040-通用定时器PWM输出",
                    "url": "/sdoc/peripheral/timer/126b08f6aac20ab7bc66d777.html",
                    "frontmatter": {
                      "title": "LV040-通用定时器PWM输出",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/peripheral/timer/126b08f6aac20ab7bc66d777",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "7bc66d777a344e838bab8b97634f96bc",
                        "useduuid": "7bc66d777"
                      }
                    }
                  },
                  {
                    "title": "LV045-通用定时器输入捕获",
                    "url": "/sdoc/peripheral/timer/126b08f6ab6404f5fdfb5648.html",
                    "frontmatter": {
                      "title": "LV045-通用定时器输入捕获",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/peripheral/timer/126b08f6ab6404f5fdfb5648",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "5fdfb5648d1542adb31bc692aaebfac4",
                        "useduuid": "5fdfb5648"
                      }
                    }
                  },
                  {
                    "title": "LV050-通用定时器脉冲计数",
                    "url": "/sdoc/peripheral/timer/126b08f6ab873bc74e57e381.html",
                    "frontmatter": {
                      "title": "LV050-通用定时器脉冲计数",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/peripheral/timer/126b08f6ab873bc74e57e381",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "74e57e3815ac43a9b2ad64b853530fde",
                        "useduuid": "74e57e381"
                      }
                    }
                  },
                  {
                    "title": "LV070-高级定时器简介",
                    "url": "/sdoc/peripheral/timer/126b08f6abf821065c6674f2.html",
                    "frontmatter": {
                      "title": "LV070-高级定时器简介",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/peripheral/timer/126b08f6abf821065c6674f2",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "65c6674f24194a5c905c5931e3b1bb25",
                        "useduuid": "65c6674f2"
                      }
                    }
                  },
                  {
                    "title": "LV075-高级定时器PWM输出",
                    "url": "/sdoc/peripheral/timer/126b08f6ac4f2bb02b42403e.html",
                    "frontmatter": {
                      "title": "LV075-高级定时器PWM输出",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/peripheral/timer/126b08f6ac4f2bb02b42403e",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "02b42403e6334b1e88b3aefe535488bf",
                        "useduuid": "02b42403e"
                      }
                    }
                  },
                  {
                    "title": "LV080-高级定时器输出比较模式",
                    "url": "/sdoc/peripheral/timer/126b08f6aca0253099c9ba29.html",
                    "frontmatter": {
                      "title": "LV080-高级定时器输出比较模式",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/peripheral/timer/126b08f6aca0253099c9ba29",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "099c9ba29781487ab77ef3977ecd7122",
                        "useduuid": "099c9ba29"
                      }
                    }
                  },
                  {
                    "title": "LV085-高级定时器互补输出",
                    "url": "/sdoc/peripheral/timer/126b08f6ad8f2e0487d6c438.html",
                    "frontmatter": {
                      "title": "LV085-高级定时器互补输出",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/peripheral/timer/126b08f6ad8f2e0487d6c438",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "487d6c4384224a459898d149b83609e0",
                        "useduuid": "487d6c438"
                      }
                    }
                  },
                  {
                    "title": "LV090-高级定时器PWM输入",
                    "url": "/sdoc/peripheral/timer/126b08f6ae2512a51a9eec42.html",
                    "frontmatter": {
                      "title": "LV090-高级定时器PWM输入",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/peripheral/timer/126b08f6ae2512a51a9eec42",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "51a9eec423e4412c99aa8247ccd2092d",
                        "useduuid": "51a9eec42"
                      }
                    }
                  },
                  {
                    "title": "LV100-SysTick定时器简介",
                    "url": "/sdoc/peripheral/timer/126b08f7176d34627620ad1b.html",
                    "frontmatter": {
                      "title": "LV100-SysTick定时器简介",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/peripheral/timer/126b08f7176d34627620ad1b",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "27620ad1b6704f3ab64b6bc4d14b88f4",
                        "useduuid": "27620ad1b"
                      }
                    }
                  },
                  {
                    "title": "LV105-自定义延时函数",
                    "url": "/sdoc/peripheral/timer/126b08f71bb31f61f9e3c819.html",
                    "frontmatter": {
                      "title": "LV105-自定义延时函数",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/peripheral/timer/126b08f71bb31f61f9e3c819",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "1f9e3c81978544cfa5b36e225514bb0d",
                        "useduuid": "1f9e3c819"
                      }
                    }
                  }
                ],
                "frontmatter": {}
              },
              {
                "title": "20-看门狗",
                "children": [
                  {
                    "title": "LV001-看门狗简介",
                    "url": "/sdoc/peripheral/watchdog/126b09043ae916195cb39541.html",
                    "frontmatter": {
                      "title": "LV001-看门狗简介",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/peripheral/watchdog/126b09043ae916195cb39541",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "95cb3954118d49beb6d6912a9e3cb522",
                        "useduuid": "95cb39541"
                      }
                    }
                  },
                  {
                    "title": "LV010-看门狗使用实例",
                    "url": "/sdoc/peripheral/watchdog/126b09043c29000296442c6e.html",
                    "frontmatter": {
                      "title": "LV010-看门狗使用实例",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/peripheral/watchdog/126b09043c29000296442c6e",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "296442c6e9ba4600b39cd12075ea87af",
                        "useduuid": "296442c6e"
                      }
                    }
                  }
                ],
                "frontmatter": {}
              },
              {
                "title": "25-FSMC",
                "children": [
                  {
                    "title": "01-FSMC基础",
                    "children": [
                      {
                        "title": "LV001-FSMC简介",
                        "url": "/sdoc/peripheral/fsmc/fsmc-basic/126b092492553b23e8704ba7.html",
                        "frontmatter": {
                          "title": "LV001-FSMC简介",
                          "date": {},
                          "icon": "famicons:logo-markdown",
                          "permalink": "/sdoc/peripheral/fsmc/fsmc-basic/126b092492553b23e8704ba7",
                          "index": true,
                          "tags": null,
                          "categories": null,
                          "copyright": false,
                          "keywords": null,
                          "cover": null,
                          "comments": null,
                          "mathjax": null,
                          "top": null,
                          "description": null,
                          "tdoc": {
                            "detailDate": {},
                            "fulluuid": "3e8704ba79214a3cbb9ab231d637b62e",
                            "useduuid": "3e8704ba7"
                          }
                        }
                      },
                      {
                        "title": "LV005-存储器映射与控制器",
                        "url": "/sdoc/peripheral/fsmc/fsmc-basic/126b092499b000721416c9a0.html",
                        "frontmatter": {
                          "title": "LV005-存储器映射与控制器",
                          "date": {},
                          "icon": "famicons:logo-markdown",
                          "permalink": "/sdoc/peripheral/fsmc/fsmc-basic/126b092499b000721416c9a0",
                          "index": true,
                          "tags": null,
                          "categories": null,
                          "copyright": false,
                          "keywords": null,
                          "cover": null,
                          "comments": null,
                          "mathjax": null,
                          "top": null,
                          "description": null,
                          "tdoc": {
                            "detailDate": {},
                            "fulluuid": "21416c9a03d8478188e3897a2c59aa5e",
                            "useduuid": "21416c9a0"
                          }
                        }
                      },
                      {
                        "title": "LV010-相关HAL库函数",
                        "url": "/sdoc/peripheral/fsmc/fsmc-basic/126b0924b19533081adda526.html",
                        "frontmatter": {
                          "title": "LV010-相关HAL库函数",
                          "date": {},
                          "icon": "famicons:logo-markdown",
                          "permalink": "/sdoc/peripheral/fsmc/fsmc-basic/126b0924b19533081adda526",
                          "index": true,
                          "tags": null,
                          "categories": null,
                          "copyright": false,
                          "keywords": null,
                          "cover": null,
                          "comments": null,
                          "mathjax": null,
                          "top": null,
                          "description": null,
                          "tdoc": {
                            "detailDate": {},
                            "fulluuid": "81adda5266e04132bfcad67ecceec69d",
                            "useduuid": "81adda526"
                          }
                        }
                      }
                    ],
                    "frontmatter": {}
                  },
                  {
                    "title": "05-外部SRAM",
                    "children": [
                      {
                        "title": "LV001-概述",
                        "url": "/sdoc/peripheral/fsmc/sram/126b09248e5b007fcadf7acc.html",
                        "frontmatter": {
                          "title": "LV001-概述",
                          "date": {},
                          "icon": "famicons:logo-markdown",
                          "permalink": "/sdoc/peripheral/fsmc/sram/126b09248e5b007fcadf7acc",
                          "index": true,
                          "tags": null,
                          "categories": null,
                          "copyright": false,
                          "keywords": null,
                          "cover": null,
                          "comments": null,
                          "mathjax": null,
                          "top": null,
                          "description": null,
                          "tdoc": {
                            "detailDate": {},
                            "fulluuid": "fcadf7accc90458fa4cab2cebf963be3",
                            "useduuid": "fcadf7acc"
                          }
                        }
                      },
                      {
                        "title": "LV002-XM8A51216简介",
                        "url": "/sdoc/peripheral/fsmc/sram/126b09248ce51200a79d393f.html",
                        "frontmatter": {
                          "title": "LV002-XM8A51216简介",
                          "date": {},
                          "icon": "famicons:logo-markdown",
                          "permalink": "/sdoc/peripheral/fsmc/sram/126b09248ce51200a79d393f",
                          "index": true,
                          "tags": null,
                          "categories": null,
                          "copyright": false,
                          "keywords": null,
                          "cover": null,
                          "comments": null,
                          "mathjax": null,
                          "top": null,
                          "description": null,
                          "tdoc": {
                            "detailDate": {},
                            "fulluuid": "0a79d393fee944b89889bdacfda6ea95",
                            "useduuid": "0a79d393f"
                          }
                        }
                      },
                      {
                        "title": "LV005-IS62WV51216简介",
                        "url": "/sdoc/peripheral/fsmc/sram/126b09248db61d861c837fd7.html",
                        "frontmatter": {
                          "title": "LV005-IS62WV51216简介",
                          "date": {},
                          "icon": "famicons:logo-markdown",
                          "permalink": "/sdoc/peripheral/fsmc/sram/126b09248db61d861c837fd7",
                          "index": true,
                          "tags": null,
                          "categories": null,
                          "copyright": false,
                          "keywords": null,
                          "cover": null,
                          "comments": null,
                          "mathjax": null,
                          "top": null,
                          "description": null,
                          "tdoc": {
                            "detailDate": {},
                            "fulluuid": "61c837fd7bf24e47b455ebbf97c03db7",
                            "useduuid": "61c837fd7"
                          }
                        }
                      },
                      {
                        "title": "LV015-外部SRAM读写实例",
                        "url": "/sdoc/peripheral/fsmc/sram/126b0924b2d20263b97733d0.html",
                        "frontmatter": {
                          "title": "LV015-外部SRAM读写实例",
                          "date": {},
                          "icon": "famicons:logo-markdown",
                          "permalink": "/sdoc/peripheral/fsmc/sram/126b0924b2d20263b97733d0",
                          "index": true,
                          "tags": null,
                          "categories": null,
                          "copyright": false,
                          "keywords": null,
                          "cover": null,
                          "comments": null,
                          "mathjax": null,
                          "top": null,
                          "description": null,
                          "tdoc": {
                            "detailDate": {},
                            "fulluuid": "3b97733d0c5f43148008ceafa2203f32",
                            "useduuid": "3b97733d0"
                          }
                        }
                      }
                    ],
                    "frontmatter": {}
                  }
                ],
                "frontmatter": {}
              },
              {
                "title": "30-I2C",
                "children": [
                  {
                    "title": "LV001-STM32的I2C",
                    "url": "/sdoc/peripheral/i2c/126b09344c01323883ac1ab4.html",
                    "frontmatter": {
                      "title": "LV001-STM32的I2C",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/peripheral/i2c/126b09344c01323883ac1ab4",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "883ac1ab454e45c8903061818823ca7f",
                        "useduuid": "883ac1ab4"
                      }
                    }
                  },
                  {
                    "title": "LV010-AT24C02简介",
                    "url": "/sdoc/peripheral/i2c/126b09344d8f021f00cacd6c.html",
                    "frontmatter": {
                      "title": "LV010-AT24C02简介",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/peripheral/i2c/126b09344d8f021f00cacd6c",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "f00cacd6ccbd4a459325107dc47b447a",
                        "useduuid": "f00cacd6c"
                      }
                    }
                  },
                  {
                    "title": "LV015-AT24C02使用实例",
                    "url": "/sdoc/peripheral/i2c/126b09344f37186302faabd7.html",
                    "frontmatter": {
                      "title": "LV015-AT24C02使用实例",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/peripheral/i2c/126b09344f37186302faabd7",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "302faabd7f05494cbdcffb39c1c91164",
                        "useduuid": "302faabd7"
                      }
                    }
                  }
                ],
                "frontmatter": {}
              },
              {
                "title": "35-SPI",
                "children": [
                  {
                    "title": "LV001-STM32的SPI",
                    "url": "/sdoc/peripheral/spi/126b0950f4ae14889c830ae3.html",
                    "frontmatter": {
                      "title": "LV001-STM32的SPI",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/peripheral/spi/126b0950f4ae14889c830ae3",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "89c830ae3a594952be17b5abc6bbb737",
                        "useduuid": "89c830ae3"
                      }
                    }
                  },
                  {
                    "title": "LV010-W25QXXX简介",
                    "url": "/sdoc/peripheral/spi/126b0950f64a0b5a3fbcba93.html",
                    "frontmatter": {
                      "title": "LV010-W25QXXX简介",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/peripheral/spi/126b0950f64a0b5a3fbcba93",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "a3fbcba93d1642329a28cddcb65ad8e8",
                        "useduuid": "a3fbcba93"
                      }
                    }
                  },
                  {
                    "title": "LV015-SPI读写W25QXXX实例",
                    "url": "/sdoc/peripheral/spi/126b0950f849211ff053e7ff.html",
                    "frontmatter": {
                      "title": "LV015-SPI读写W25QXXX实例",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/peripheral/spi/126b0950f849211ff053e7ff",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "ff053e7ff3e247358beec3bab1ba61de",
                        "useduuid": "ff053e7ff"
                      }
                    }
                  }
                ],
                "frontmatter": {}
              },
              {
                "title": "40-DMA",
                "children": [
                  {
                    "title": "LV001-DMA简介",
                    "url": "/sdoc/peripheral/dma/126b0950fbc52669af52caac.html",
                    "frontmatter": {
                      "title": "LV001-DMA简介",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/peripheral/dma/126b0950fbc52669af52caac",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "9af52caac91c42b1b28d2e09c22f8d43",
                        "useduuid": "9af52caac"
                      }
                    }
                  },
                  {
                    "title": "LV010-DMA使用实例",
                    "url": "/sdoc/peripheral/dma/126b0950fc960317c7b64826.html",
                    "frontmatter": {
                      "title": "LV010-DMA使用实例",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/peripheral/dma/126b0950fc960317c7b64826",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "7c7b6482620b4698a5eac4b6e449f631",
                        "useduuid": "7c7b64826"
                      }
                    }
                  }
                ],
                "frontmatter": {}
              },
              {
                "title": "50-SDIO",
                "children": [
                  {
                    "title": "LV001-SD卡简介",
                    "url": "/sdoc/peripheral/sdio/126b0950fe110bc81c4d2fd3.html",
                    "frontmatter": {
                      "title": "LV001-SD卡简介",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/peripheral/sdio/126b0950fe110bc81c4d2fd3",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "81c4d2fd3b3049a1a63dd12e12b5a3fa",
                        "useduuid": "81c4d2fd3"
                      }
                    }
                  },
                  {
                    "title": "LV015-SD卡的操作",
                    "url": "/sdoc/peripheral/sdio/126b0950ff013d660d235356.html",
                    "frontmatter": {
                      "title": "LV015-SD卡的操作",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/peripheral/sdio/126b0950ff013d660d235356",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "60d235356a8a41c6b5be0b1b1d22ed03",
                        "useduuid": "60d235356"
                      }
                    }
                  },
                  {
                    "title": "LV020-STM32的SDIO",
                    "url": "/sdoc/peripheral/sdio/126b0951000d2a75b964fa55.html",
                    "frontmatter": {
                      "title": "LV020-STM32的SDIO",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/peripheral/sdio/126b0951000d2a75b964fa55",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "5b964fa55b1c49f2849632ac18e58758",
                        "useduuid": "5b964fa55"
                      }
                    }
                  },
                  {
                    "title": "LV025-读写SD卡实例",
                    "url": "/sdoc/peripheral/sdio/126b095100d21af60c8ed17e.html",
                    "frontmatter": {
                      "title": "LV025-读写SD卡实例",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/peripheral/sdio/126b095100d21af60c8ed17e",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "60c8ed17e9a9490aaf1efe2014ac5b67",
                        "useduuid": "60c8ed17e"
                      }
                    }
                  }
                ],
                "frontmatter": {}
              },
              {
                "title": "55-RTC时钟",
                "children": [
                  {
                    "title": "LV001-RTC简介",
                    "url": "/sdoc/peripheral/rtc/126b09511eac35920a3f191c.html",
                    "frontmatter": {
                      "title": "LV001-RTC简介",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/peripheral/rtc/126b09511eac35920a3f191c",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "20a3f191c6054d8d9f5fd53ff7b809de",
                        "useduuid": "20a3f191c"
                      }
                    }
                  }
                ],
                "frontmatter": {}
              },
              {
                "title": "60-USB",
                "children": [
                  {
                    "title": "LV001-USB简介",
                    "url": "/sdoc/peripheral/usb/126b095167b12a8376012928.html",
                    "frontmatter": {
                      "title": "LV001-USB简介",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/peripheral/usb/126b095167b12a8376012928",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "3760129282bc45c68e9217915df4f46b",
                        "useduuid": 376012928
                      }
                    }
                  },
                  {
                    "title": "LV010-USB读卡器实例",
                    "url": "/sdoc/peripheral/usb/126b095168b91d9fad5c2a07.html",
                    "frontmatter": {
                      "title": "LV010-USB读卡器实例",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/peripheral/usb/126b095168b91d9fad5c2a07",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "fad5c2a07ce14efe93e887b24a93fb47",
                        "useduuid": "fad5c2a07"
                      }
                    }
                  }
                ],
                "frontmatter": {}
              }
            ],
            "frontmatter": {}
          },
          {
            "title": "30-进阶篇",
            "children": [
              {
                "title": "01-文件系统",
                "children": [
                  {
                    "title": "LV001-文件系统简介",
                    "url": "/sdoc/advanced-chapter/file-system/126b0951040033e78ccbca10.html",
                    "frontmatter": {
                      "title": "LV001-文件系统简介",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/advanced-chapter/file-system/126b0951040033e78ccbca10",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "78ccbca106d046ecaee2de5e4c1f5766",
                        "useduuid": "78ccbca10"
                      }
                    }
                  },
                  {
                    "title": "LV010-FATFS简介",
                    "url": "/sdoc/advanced-chapter/file-system/126b095105912fc87e8eb3f7.html",
                    "frontmatter": {
                      "title": "LV010-FATFS简介",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/advanced-chapter/file-system/126b095105912fc87e8eb3f7",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "87e8eb3f76b14573a4c0856bf2257669",
                        "useduuid": "87e8eb3f7"
                      }
                    }
                  },
                  {
                    "title": "LV015-基于SPIFLASH移植FATFS",
                    "url": "/sdoc/advanced-chapter/file-system/126b0951078a03391bda267a.html",
                    "frontmatter": {
                      "title": "LV015-基于SPIFLASH移植FATFS",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/advanced-chapter/file-system/126b0951078a03391bda267a",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "91bda267a4934867a0b05673bbc3ef13",
                        "useduuid": "91bda267a"
                      }
                    }
                  },
                  {
                    "title": "LV015-基于SD卡移植FATFS",
                    "url": "/sdoc/advanced-chapter/file-system/126b09511b702501a47f120c.html",
                    "frontmatter": {
                      "title": "LV015-基于SD卡移植FATFS",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/advanced-chapter/file-system/126b09511b702501a47f120c",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "1a47f120cd8c41b6ab06d05da2ace352",
                        "useduuid": "1a47f120c"
                      }
                    }
                  },
                  {
                    "title": "LV025-FATFS中自定义的一些函数",
                    "url": "/sdoc/advanced-chapter/file-system/126b09511d060b54b7d725e9.html",
                    "frontmatter": {
                      "title": "LV025-FATFS中自定义的一些函数",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/advanced-chapter/file-system/126b09511d060b54b7d725e9",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "4b7d725e9ba54c78945189a9341e3b34",
                        "useduuid": "4b7d725e9"
                      }
                    }
                  }
                ],
                "frontmatter": {}
              },
              {
                "title": "02-ESP8266",
                "children": [
                  {
                    "title": "LV001-ESP8266模块简介",
                    "url": "/sdoc/advanced-chapter/esp8266/126b0951502d346ca9aa7929.html",
                    "frontmatter": {
                      "title": "LV001-ESP8266模块简介",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/advanced-chapter/esp8266/126b0951502d346ca9aa7929",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "ca9aa79298244701abe40ba6e8a3afb0",
                        "useduuid": "ca9aa7929"
                      }
                    }
                  },
                  {
                    "title": "LV010-AT指令",
                    "url": "/sdoc/advanced-chapter/esp8266/126b095151472d621a6605a9.html",
                    "frontmatter": {
                      "title": "LV010-AT指令",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/advanced-chapter/esp8266/126b095151472d621a6605a9",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "21a6605a91b34e7b87e3081f66267021",
                        "useduuid": "21a6605a9"
                      }
                    }
                  },
                  {
                    "title": "LV015-ESP8266固件烧录",
                    "url": "/sdoc/advanced-chapter/esp8266/126b0951520814de18399844.html",
                    "frontmatter": {
                      "title": "LV015-ESP8266固件烧录",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/advanced-chapter/esp8266/126b0951520814de18399844",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "e18399844bf344e3bb81cdc33db73395",
                        "useduuid": "e18399844"
                      }
                    }
                  },
                  {
                    "title": "LV020-ATK-ESP8266使用实例",
                    "url": "/sdoc/advanced-chapter/esp8266/126b095152fb04ead8380cb5.html",
                    "frontmatter": {
                      "title": "LV020-ATK-ESP8266使用实例",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/advanced-chapter/esp8266/126b095152fb04ead8380cb5",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "ad8380cb587c446592ab6fa1ae7318fd",
                        "useduuid": "ad8380cb5"
                      }
                    }
                  }
                ],
                "frontmatter": {}
              },
              {
                "title": "03-OV7725",
                "children": [
                  {
                    "title": "LV001-ATK-MC6625F模块简介",
                    "url": "/sdoc/advanced-chapter/ov7725/126b09516b08191a7bd0fd02.html",
                    "frontmatter": {
                      "title": "LV001-ATK-MC6625F模块简介",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/advanced-chapter/ov7725/126b09516b08191a7bd0fd02",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "a7bd0fd0290345cfae6ad4ff74f043f7",
                        "useduuid": "a7bd0fd02"
                      }
                    }
                  },
                  {
                    "title": "LV010-SCCB协议简介",
                    "url": "/sdoc/advanced-chapter/ov7725/126b09516b6c2fed98855250.html",
                    "frontmatter": {
                      "title": "LV010-SCCB协议简介",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/advanced-chapter/ov7725/126b09516b6c2fed98855250",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "d9885525026649bdb9a31be28b79a722",
                        "useduuid": "d98855250"
                      }
                    }
                  },
                  {
                    "title": "LV020-OV7725简介",
                    "url": "/sdoc/advanced-chapter/ov7725/126b09516bd03c413cd356e8.html",
                    "frontmatter": {
                      "title": "LV020-OV7725简介",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/advanced-chapter/ov7725/126b09516bd03c413cd356e8",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "13cd356e84f447f3b52ee1a287368dce",
                        "useduuid": "13cd356e8"
                      }
                    }
                  }
                ],
                "frontmatter": {}
              },
              {
                "title": "04-显示屏",
                "children": [
                  {
                    "title": "01-OLED",
                    "children": [
                      {
                        "title": "LV001-OLED简介",
                        "url": "/sdoc/advanced-chapter/display/oled/126b09516d6c2a948085516b.html",
                        "frontmatter": {
                          "title": "LV001-OLED简介",
                          "date": {},
                          "icon": "famicons:logo-markdown",
                          "permalink": "/sdoc/advanced-chapter/display/oled/126b09516d6c2a948085516b",
                          "index": true,
                          "tags": null,
                          "categories": null,
                          "copyright": false,
                          "keywords": null,
                          "cover": null,
                          "comments": null,
                          "mathjax": null,
                          "top": null,
                          "description": null,
                          "tdoc": {
                            "detailDate": {},
                            "fulluuid": "48085516b89044b2a637057cfaac3f5c",
                            "useduuid": "48085516b"
                          }
                        }
                      },
                      {
                        "title": "LV010-8080时序驱动OLED",
                        "url": "/sdoc/advanced-chapter/display/oled/126b09517279099247b327e5.html",
                        "frontmatter": {
                          "title": "LV010-8080时序驱动OLED",
                          "date": {},
                          "icon": "famicons:logo-markdown",
                          "permalink": "/sdoc/advanced-chapter/display/oled/126b09517279099247b327e5",
                          "index": true,
                          "tags": null,
                          "categories": null,
                          "copyright": false,
                          "keywords": null,
                          "cover": null,
                          "comments": null,
                          "mathjax": null,
                          "top": null,
                          "description": null,
                          "tdoc": {
                            "detailDate": {},
                            "fulluuid": "247b327e5f1747919749deb8038e066d",
                            "useduuid": "247b327e5"
                          }
                        }
                      }
                    ],
                    "frontmatter": {}
                  },
                  {
                    "title": "02-LCD",
                    "children": [
                      {
                        "title": "LV001-LCD简介",
                        "url": "/sdoc/advanced-chapter/display/lcd/126b0951740b3b3a3f69973e.html",
                        "frontmatter": {
                          "title": "LV001-LCD简介",
                          "date": {},
                          "icon": "famicons:logo-markdown",
                          "permalink": "/sdoc/advanced-chapter/display/lcd/126b0951740b3b3a3f69973e",
                          "index": true,
                          "tags": null,
                          "categories": null,
                          "copyright": false,
                          "keywords": null,
                          "cover": null,
                          "comments": null,
                          "mathjax": null,
                          "top": null,
                          "description": null,
                          "tdoc": {
                            "detailDate": {},
                            "fulluuid": "a3f69973ef4142428240aba5719aeeb0",
                            "useduuid": "a3f69973e"
                          }
                        }
                      },
                      {
                        "title": "LV010-液晶控制原理",
                        "url": "/sdoc/advanced-chapter/display/lcd/126b0951760b03320ea5c5be.html",
                        "frontmatter": {
                          "title": "LV010-液晶控制原理",
                          "date": {},
                          "icon": "famicons:logo-markdown",
                          "permalink": "/sdoc/advanced-chapter/display/lcd/126b0951760b03320ea5c5be",
                          "index": true,
                          "tags": null,
                          "categories": null,
                          "copyright": false,
                          "keywords": null,
                          "cover": null,
                          "comments": null,
                          "mathjax": null,
                          "top": null,
                          "description": null,
                          "tdoc": {
                            "detailDate": {},
                            "fulluuid": "20ea5c5be93445288eac3b57c2e84f66",
                            "useduuid": "20ea5c5be"
                          }
                        }
                      },
                      {
                        "title": "LV015-ATK-MD0280模块",
                        "url": "/sdoc/advanced-chapter/display/lcd/126b095237661ce983ad47b1.html",
                        "frontmatter": {
                          "title": "LV015-ATK-MD0280模块",
                          "date": {},
                          "icon": "famicons:logo-markdown",
                          "permalink": "/sdoc/advanced-chapter/display/lcd/126b095237661ce983ad47b1",
                          "index": true,
                          "tags": null,
                          "categories": null,
                          "copyright": false,
                          "keywords": null,
                          "cover": null,
                          "comments": null,
                          "mathjax": null,
                          "top": null,
                          "description": null,
                          "tdoc": {
                            "detailDate": {},
                            "fulluuid": "983ad47b1ccb49c59396418e90556b0c",
                            "useduuid": "983ad47b1"
                          }
                        }
                      },
                      {
                        "title": "LV016-IL9341简介",
                        "url": "/sdoc/advanced-chapter/display/lcd/126b095238ef12080fa9e2fc.html",
                        "frontmatter": {
                          "title": "LV016-IL9341简介",
                          "date": {},
                          "icon": "famicons:logo-markdown",
                          "permalink": "/sdoc/advanced-chapter/display/lcd/126b095238ef12080fa9e2fc",
                          "index": true,
                          "tags": null,
                          "categories": null,
                          "copyright": false,
                          "keywords": null,
                          "cover": null,
                          "comments": null,
                          "mathjax": null,
                          "top": null,
                          "description": null,
                          "tdoc": {
                            "detailDate": {},
                            "fulluuid": "80fa9e2fc1c846ac9bfafe695ffc6b7d",
                            "useduuid": "80fa9e2fc"
                          }
                        }
                      },
                      {
                        "title": "LV020-FSMC模拟8080时序",
                        "url": "/sdoc/advanced-chapter/display/lcd/126b09523c371707f0bd772f.html",
                        "frontmatter": {
                          "title": "LV020-FSMC模拟8080时序",
                          "date": {},
                          "icon": "famicons:logo-markdown",
                          "permalink": "/sdoc/advanced-chapter/display/lcd/126b09523c371707f0bd772f",
                          "index": true,
                          "tags": null,
                          "categories": null,
                          "copyright": false,
                          "keywords": null,
                          "cover": null,
                          "comments": null,
                          "mathjax": null,
                          "top": null,
                          "description": null,
                          "tdoc": {
                            "detailDate": {},
                            "fulluuid": "7f0bd772fcbd424ab2f5aaf94abf65ff",
                            "useduuid": "7f0bd772f"
                          }
                        }
                      },
                      {
                        "title": "LV025-LCD显示实例",
                        "url": "/sdoc/advanced-chapter/display/lcd/126b095253d9037570d31d42.html",
                        "frontmatter": {
                          "title": "LV025-LCD显示实例",
                          "date": {},
                          "icon": "famicons:logo-markdown",
                          "permalink": "/sdoc/advanced-chapter/display/lcd/126b095253d9037570d31d42",
                          "index": true,
                          "tags": null,
                          "categories": null,
                          "copyright": false,
                          "keywords": null,
                          "cover": null,
                          "comments": null,
                          "mathjax": null,
                          "top": null,
                          "description": null,
                          "tdoc": {
                            "detailDate": {},
                            "fulluuid": "570d31d42d894e208a1fb9d5c484e257",
                            "useduuid": "570d31d42"
                          }
                        }
                      },
                      {
                        "title": "LV030-字符编码基础",
                        "url": "/sdoc/advanced-chapter/display/lcd/126b095255800a53f67e99cc.html",
                        "frontmatter": {
                          "title": "LV030-字符编码基础",
                          "date": {},
                          "icon": "famicons:logo-markdown",
                          "permalink": "/sdoc/advanced-chapter/display/lcd/126b095255800a53f67e99cc",
                          "index": true,
                          "tags": null,
                          "categories": null,
                          "copyright": false,
                          "keywords": null,
                          "cover": null,
                          "comments": null,
                          "mathjax": null,
                          "top": null,
                          "description": null,
                          "tdoc": {
                            "detailDate": {},
                            "fulluuid": "3f67e99cc1774328be76eff3ae429948",
                            "useduuid": "3f67e99cc"
                          }
                        }
                      },
                      {
                        "title": "LV035-中英文的显示",
                        "url": "/sdoc/advanced-chapter/display/lcd/126b0952576b3df0941e36ed.html",
                        "frontmatter": {
                          "title": "LV035-中英文的显示",
                          "date": {},
                          "icon": "famicons:logo-markdown",
                          "permalink": "/sdoc/advanced-chapter/display/lcd/126b0952576b3df0941e36ed",
                          "index": true,
                          "tags": null,
                          "categories": null,
                          "copyright": false,
                          "keywords": null,
                          "cover": null,
                          "comments": null,
                          "mathjax": null,
                          "top": null,
                          "description": null,
                          "tdoc": {
                            "detailDate": {},
                            "fulluuid": "0941e36ed35b4da7a71acace5c8d2e0d",
                            "useduuid": "0941e36ed"
                          }
                        }
                      },
                      {
                        "title": "LV040-实现任意大小字模",
                        "url": "/sdoc/advanced-chapter/display/lcd/126b09525e7116330989fbcc.html",
                        "frontmatter": {
                          "title": "LV040-实现任意大小字模",
                          "date": {},
                          "icon": "famicons:logo-markdown",
                          "permalink": "/sdoc/advanced-chapter/display/lcd/126b09525e7116330989fbcc",
                          "index": true,
                          "tags": null,
                          "categories": null,
                          "copyright": false,
                          "keywords": null,
                          "cover": null,
                          "comments": null,
                          "mathjax": null,
                          "top": null,
                          "description": null,
                          "tdoc": {
                            "detailDate": {},
                            "fulluuid": "30989fbcc8354f6baad6455294de0120",
                            "useduuid": "30989fbcc"
                          }
                        }
                      }
                    ],
                    "frontmatter": {}
                  }
                ],
                "frontmatter": {}
              },
              {
                "title": "90-FreeRTOS",
                "children": [
                  {
                    "title": "01-FreeRTOS简介",
                    "children": [
                      {
                        "title": "LV001-FreeRTOS简介",
                        "url": "/docs/126b096ee4d10f3bb564b607.html",
                        "frontmatter": {
                          "title": "LV001-FreeRTOS简介",
                          "date": {},
                          "icon": "famicons:logo-markdown",
                          "permalink": "/docs/126b096ee4d10f3bb564b607",
                          "index": true,
                          "tags": null,
                          "categories": null,
                          "copyright": false,
                          "keywords": null,
                          "cover": null,
                          "comments": null,
                          "mathjax": null,
                          "top": null,
                          "description": null,
                          "tdoc": {
                            "detailDate": {},
                            "fulluuid": "bb564b607089439882d4247b57282de9",
                            "useduuid": "bb564b607"
                          }
                        }
                      }
                    ],
                    "frontmatter": {}
                  }
                ],
                "frontmatter": {}
              }
            ],
            "frontmatter": {}
          },
          {
            "title": "60-通信专题",
            "children": [
              {
                "title": "01-I2C协议",
                "children": [
                  {
                    "title": "LV001-I2C简介",
                    "url": "/sdoc/communication/i2c/126b09043f2d250b963bfb0d.html",
                    "frontmatter": {
                      "title": "LV001-I2C简介",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/communication/i2c/126b09043f2d250b963bfb0d",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "b963bfb0deb74fcaa8f060b7b084d3d8",
                        "useduuid": "b963bfb0d"
                      }
                    }
                  },
                  {
                    "title": "LV020-AT24C02实例分析",
                    "url": "/sdoc/communication/i2c/126b09043fca31869028172d.html",
                    "frontmatter": {
                      "title": "LV020-AT24C02实例分析",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/communication/i2c/126b09043fca31869028172d",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "69028172daa144dcbab34851329c3348",
                        "useduuid": "69028172d"
                      }
                    }
                  }
                ],
                "frontmatter": {}
              },
              {
                "title": "10-串口",
                "children": [
                  {
                    "title": "LV001-串口通信简介",
                    "url": "/sdoc/communication/serial-port/126b0904421d06db7b197798.html",
                    "frontmatter": {
                      "title": "LV001-串口通信简介",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/communication/serial-port/126b0904421d06db7b197798",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "b7b197798fd74f3fb97abd23e12eb7bc",
                        "useduuid": "b7b197798"
                      }
                    }
                  },
                  {
                    "title": "LV020-RS232简介",
                    "url": "/sdoc/communication/serial-port/126b0950f26b1afbd6db3885.html",
                    "frontmatter": {
                      "title": "LV020-RS232简介",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/communication/serial-port/126b0950f26b1afbd6db3885",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "bd6db38856214d8db0d0697d94245e7d",
                        "useduuid": "bd6db3885"
                      }
                    }
                  },
                  {
                    "title": "LV030-RS485简介",
                    "url": "/sdoc/communication/serial-port/126b0950f287303e7c68cbb5.html",
                    "frontmatter": {
                      "title": "LV030-RS485简介",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/communication/serial-port/126b0950f287303e7c68cbb5",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "e7c68cbb501d41a4be750e720e3a5e0a",
                        "useduuid": "e7c68cbb5"
                      }
                    }
                  }
                ],
                "frontmatter": {}
              },
              {
                "title": "30-SPI",
                "children": [
                  {
                    "title": "LV001-SPI简介",
                    "url": "/sdoc/communication/spi/126b0950dceb1d850b1e36d8.html",
                    "frontmatter": {
                      "title": "LV001-SPI简介",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/communication/spi/126b0950dceb1d850b1e36d8",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "50b1e36d86eb4c0e85c11fe350fcd877",
                        "useduuid": "50b1e36d8"
                      }
                    }
                  }
                ],
                "frontmatter": {}
              },
              {
                "title": "40-CAN",
                "children": [
                  {
                    "title": "LV001-CAN通信简介",
                    "url": "/sdoc/communication/can/126b0950f34624bdf8f7407f.html",
                    "frontmatter": {
                      "title": "LV001-CAN通信简介",
                      "date": {},
                      "icon": "famicons:logo-markdown",
                      "permalink": "/sdoc/communication/can/126b0950f34624bdf8f7407f",
                      "index": true,
                      "tags": null,
                      "categories": null,
                      "copyright": false,
                      "keywords": null,
                      "cover": null,
                      "comments": null,
                      "mathjax": null,
                      "top": null,
                      "description": null,
                      "tdoc": {
                        "detailDate": {},
                        "fulluuid": "df8f7407fc324becb0237697f4ea8f9c",
                        "useduuid": "df8f7407f"
                      }
                    }
                  }
                ],
                "frontmatter": {}
              },
              {
                "title": "LV001-通信概述",
                "url": "/sdoc/communication/126b09043e1c12685fda3fb8.html",
                "frontmatter": {
                  "title": "LV001-通信概述",
                  "date": {},
                  "icon": "famicons:logo-markdown",
                  "permalink": "/sdoc/communication/126b09043e1c12685fda3fb8",
                  "index": true,
                  "tags": null,
                  "categories": null,
                  "copyright": false,
                  "keywords": null,
                  "cover": null,
                  "comments": null,
                  "mathjax": null,
                  "top": null,
                  "description": null,
                  "tdoc": {
                    "detailDate": {},
                    "fulluuid": "85fda3fb8df54e90807dd03d5831b5bf",
                    "useduuid": "85fda3fb8"
                  }
                }
              }
            ],
            "frontmatter": {}
          }
        ]
      }
    }
  },
  "posts": {
    "allPosts": [
      {
        "url": "/Navigation.html",
        "relativePath": "/@pages/Navigation.html",
        "frontmatter": {
          "title": "我的导航",
          "Navigation": true,
          "permalink": "/Navigation",
          "layout": "page",
          "article": false,
          "sidebar": false,
          "navigationData": [
            {
              "title": "常用工具",
              "items": [
                {
                  "icon": "https://www.ico51.cn/images/logo.png",
                  "title": "在线制作ico透明图标",
                  "badge": {
                    "text": "ico",
                    "type": "info"
                  },
                  "desc": "ico透明图标",
                  "link": "https://www.ico51.cn/"
                },
                {
                  "icon": "/icons/stylus.svg",
                  "title": "stylus-css",
                  "badge": {
                    "text": "stylus",
                    "type": "tip"
                  },
                  "desc": "stylus-to-css",
                  "link": "https://verytoolz.com/stylus-css.html"
                },
                {
                  "icon": "https://www.lddgo.net/img/icon-1732875babb6f45ec2e61eaf37a1c0f0.png",
                  "title": "YAML-JSON 转换",
                  "badge": {
                    "text": "yaml",
                    "type": "warning"
                  },
                  "desc": "yaml-to-json",
                  "link": "https://www.lddgo.net/convert/yaml-to-json"
                },
                {
                  "icon": "https://tool.lu/favicon.ico",
                  "title": "在线工具",
                  "badge": {
                    "text": "tool",
                    "type": "danger"
                  },
                  "desc": "开发人员的工具箱",
                  "link": "https://tool.lu"
                },
                {
                  "icon": "/icons/SVG-file.svg",
                  "title": "svg",
                  "badge": {
                    "text": "tool",
                    "type": "danger"
                  },
                  "desc": "一个在线svg编辑器",
                  "link": "https://www.tuyitu.com/svg/"
                }
              ]
            },
            {
              "title": "AI 导航",
              "items": [
                {
                  "icon": "\thttps://ts4.tc.mm.bing.net/th/id/ODF.YxK1MUJaRoBfBG4UGNrXAA?w=32&h=32&qlt=90&pcl=fffffa&o=6&pid=1.2",
                  "title": "Deepseek",
                  "link": "https://chat.deepseek.com/"
                },
                {
                  "icon": "https://ts3.tc.mm.bing.net/th/id/ODF.T0iTu20w8jwu9conMCwNGw?w=32&h=32&qlt=90&pcl=fffffc&o=6&pid=1.2",
                  "title": "百度AI",
                  "link": "https://chat.baidu.com/search?isShowHello=1&extParams=%7B%22enter_type%22%3A%22plugin%22%7D"
                }
              ]
            },
            {
              "title": "苏木的site",
              "items": [
                {
                  "icon": "/images/favicon_sumu32x32.ico",
                  "title": "苏木",
                  "desc": "苏木",
                  "link": "https://sumumm.github.io/"
                },
                {
                  "icon": "/images/favicon_sumu32x32.ico",
                  "title": "苏木",
                  "desc": "site-hexo",
                  "link": "https://docs-site.github.io/site-hexo/"
                },
                {
                  "icon": "/icons/sumu-icon.svg",
                  "title": "苏木",
                  "desc": "site-vitepress",
                  "link": "https://docs-site.github.io/site-vitepress/"
                },
                {
                  "icon": "/icons/vscode-document.svg",
                  "title": "vscode",
                  "desc": "vscode",
                  "link": "https://docs-site.github.io/site-docsify/#/"
                }
              ]
            },
            {
              "title": "site生成",
              "items": [
                {
                  "icon": "https://vitejs.cn/vitepress/vitepress-logo-mini.svg",
                  "title": "VitePress",
                  "desc": "由 Vite 和 Vue 驱动的静态站点生成器",
                  "link": "https://vitejs.cn/vitepress/"
                },
                {
                  "icon": "https://vuepress.vuejs.org/images/hero.png",
                  "title": "VuePress",
                  "desc": "Vue 驱动的静态网站生成器",
                  "link": "https://vuepress.vuejs.org/zh/"
                },
                {
                  "icon": "https://docsify.js.org/_media/icon.svg",
                  "title": "docsify",
                  "desc": "一个神奇的文档网站生成器。",
                  "link": "https://docsify.js.org/#/"
                },
                {
                  "icon": "https://hexo.io/logo.svg",
                  "title": "Hexo",
                  "desc": "快速、简洁且高效的博客框架",
                  "link": "https://hexo.io/zh-cn/"
                }
              ]
            },
            {
              "title": "site参考",
              "items": [
                {
                  "icon": "https://vitepress.yiov.top/logo.png",
                  "title": "vitepress-doc",
                  "desc": "Yiov/vitepress-doc",
                  "link": "https://vitepress.yiov.top/"
                },
                {
                  "icon": "https://i.theojs.cn/logo/lumen-logo-mini.svg",
                  "title": "s-theo/lumen",
                  "desc": "专为 VitePress 打造的主题美化与 Vue 扩展组件库",
                  "link": "https://lumen.theojs.cn/"
                },
                {
                  "icon": "https://vp.teek.top/teek-logo-mini.svg",
                  "title": "Kele-Bingtang/vitepress-theme-teek",
                  "desc": "一个轻量、简洁高效、灵活配置、易于扩展的 VitePress 主题",
                  "link": "https://vp.teek.top/"
                }
              ]
            },
            {
              "title": "前端基础",
              "items": [
                {
                  "icon": "/icons/javascript.svg",
                  "title": "JavaScript",
                  "desc": "现代 JavaScript 教程",
                  "link": "https://zh.javascript.info/"
                },
                {
                  "icon": "/icons/typescript.svg",
                  "title": "Typescript",
                  "desc": "具有类型语法的 JavaScript",
                  "link": "https://ts.nodejs.cn/docs/"
                },
                {
                  "icon": "/icons/typescript.svg",
                  "title": "Typescript",
                  "desc": "TypeScript 入门教程",
                  "link": "https://ts.xcatliu.com/"
                },
                {
                  "icon": "/icons/typescript.svg",
                  "title": "Typescript",
                  "desc": "深入理解 TypeScript",
                  "link": "https://jkchao.github.io/typescript-book-chinese/"
                },
                {
                  "icon": "/icons/typescript.svg",
                  "title": "Typescript",
                  "desc": "TypeScript使用指南",
                  "link": "https://typescript.uihtm.com/"
                }
              ]
            },
            {
              "title": "React 生态",
              "items": [
                {
                  "icon": "https://zh-hans.reactjs.org/favicon.ico",
                  "title": "React",
                  "desc": "用于构建用户界面的 JavaScript 库",
                  "link": "https://zh-hans.reactjs.org"
                },
                {
                  "icon": "https://reactrouter.com/favicon-light.png",
                  "title": "React Router",
                  "desc": "React 的声明式路由",
                  "link": "https://reactrouter.com"
                },
                {
                  "icon": "https://nextjs.org/static/favicon/safari-pinned-tab.svg",
                  "title": "Next.js",
                  "desc": "一个用于 Web 的 React 框架",
                  "link": "https://nextjs.org"
                },
                {
                  "icon": "https://img.alicdn.com/tfs/TB1YHEpwUT1gK0jSZFhXXaAtVXa-28-27.svg",
                  "title": "UmiJS",
                  "desc": "插件化的企业级前端应用框架",
                  "link": "https://umijs.org"
                },
                {
                  "icon": "https://gw.alipayobjects.com/zos/rmsportal/rlpTLlbMzTNYuZGGCVYM.png",
                  "title": "Ant Design",
                  "desc": "一套企业级 UI 设计语言和 React 组件库",
                  "link": "https://ant.design"
                },
                {
                  "icon": "https://gw.alipayobjects.com/zos/bmw-prod/69a27fcc-ce52-4f27-83f1-c44541e9b65d.svg",
                  "title": "Ant Design Mobile",
                  "desc": "构建移动 WEB 应用程序的 React 组件库",
                  "link": "https://mobile.ant.design"
                },
                {
                  "icon": "https://docs.pmnd.rs/apple-touch-icon.png",
                  "title": "Zustand",
                  "desc": "一个小型、快速、可扩展的 React 状态管理解决方案",
                  "link": "https://docs.pmnd.rs/zustand/getting-started/introduction"
                },
                {
                  "icon": "https://valtio.pmnd.rs/favicon.ico",
                  "title": "Valtio",
                  "desc": "makes proxy-state simple for React and Vanilla",
                  "link": "https://valtio.pmnd.rs"
                },
                {
                  "icon": "https://jotai.org/favicon.svg",
                  "title": "Jotai",
                  "desc": "primitive and flexible state management for React",
                  "link": "https://jotai.org"
                },
                {
                  "icon": "https://cn.redux.js.org/img/redux.svg",
                  "title": "Redux",
                  "desc": "JavaScript 应用的状态容器,提供可预测的状态管理",
                  "link": "https://cn.redux.js.org"
                },
                {
                  "icon": "https://zh.mobx.js.org/assets/mobx.png",
                  "title": "MobX",
                  "desc": "一个小型、快速、可扩展的 React 状态管理解决方案",
                  "link": "https://zh.mobx.js.org"
                },
                {
                  "icon": "https://ahooks.js.org/simple-logo.svg",
                  "title": "ahooks",
                  "desc": "一套高质量可靠的 React Hooks 库",
                  "link": "https://ahooks.js.org/zh-CN"
                }
              ]
            },
            {
              "title": "Vue 生态",
              "items": [
                {
                  "icon": "https://cn.vuejs.org/logo.svg",
                  "title": "Vue 3",
                  "desc": "渐进式 JavaScript 框架",
                  "link": "https://cn.vuejs.org"
                },
                {
                  "icon": "https://cn.vuejs.org/logo.svg",
                  "title": "Vue 2",
                  "desc": "渐进式 JavaScript 框架",
                  "link": "https://v2.cn.vuejs.org"
                },
                {
                  "icon": "https://cn.vuejs.org/logo.svg",
                  "title": "Vue Router",
                  "desc": "Vue.js 的官方路由\n为 Vue.js 提供富有表现力、可配置的、方便的路由",
                  "link": "https://router.vuejs.org/zh"
                },
                {
                  "icon": "https://pinia.vuejs.org/logo.svg",
                  "title": "Pinia",
                  "desc": "符合直觉的 Vue.js 状态管理库",
                  "link": "https://pinia.vuejs.org/zh"
                },
                {
                  "icon": "https://nuxt.com/icon.png",
                  "title": "Nuxt.js",
                  "desc": "一个基于 Vue.js 的通用应用框架",
                  "link": "https://nuxt.com"
                },
                {
                  "icon": "https://vueuse.org/favicon.svg",
                  "title": "VueUse",
                  "desc": "Vue Composition API 的常用工具集",
                  "link": "https://vueuse.org"
                },
                {
                  "icon": "https://element-plus.org/images/element-plus-logo-small.svg",
                  "title": "Element Plus",
                  "desc": "基于 Vue 3,面向设计师和开发者的组件库",
                  "link": "https://element-plus.org"
                },
                {
                  "icon": "https://www.antdv.com/assets/logo.1ef800a8.svg",
                  "title": "Ant Design Vue",
                  "desc": "Ant Design 的 Vue 实现,开发和服务于企业级后台产品",
                  "link": "https://antdv.com"
                },
                {
                  "icon": "https://fastly.jsdelivr.net/npm/@vant/assets/logo.png",
                  "title": "Vant",
                  "desc": "轻量、可定制的移动端 Vue 组件库",
                  "link": "https://vant-ui.github.io/vant"
                },
                {
                  "icon": "https://webapp.didistatic.com/static/webapp/shield/Cube-UI_logo.ico",
                  "title": "Cube UI",
                  "desc": "基于 Vue.js 实现的精致移动端组件库",
                  "link": "https://didi.github.io/cube-ui"
                },
                {
                  "icon": "https://img14.360buyimg.com/imagetools/jfs/t1/167902/2/8762/791358/603742d7E9b4275e3/e09d8f9a8bf4c0ef.png",
                  "title": "NutUI",
                  "desc": "京东风格的轻量级移动端组件库",
                  "link": "https://nutui.jd.com"
                }
              ]
            },
            {
              "title": "CSS 相关",
              "items": [
                {
                  "icon": "https://postcss.org/assets/logo-3e39b0aa.svg",
                  "title": "PostCSS",
                  "desc": "一个用 JavaScript 转换 CSS 的工具",
                  "link": "https://postcss.org"
                },
                {
                  "icon": "https://sass-lang.com/assets/img/logos/logo-b6e1ef6e.svg",
                  "title": "Sass",
                  "desc": "一个成熟,稳定,功能强大的专业级 CSS 扩展语言",
                  "link": "https://sass-lang.com"
                },
                {
                  "icon": "https://www.tailwindcss.cn/apple-touch-icon.png",
                  "title": "TailwindCSS 中文网",
                  "desc": "一个功能类优先的 CSS 框架",
                  "link": "https://www.tailwindcss.cn"
                }
              ]
            },
            {
              "title": "Node 相关",
              "items": [
                {
                  "icon": "https://avatars.githubusercontent.com/u/9950313?s=48&v=4",
                  "title": "Node.js",
                  "desc": "Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境",
                  "link": "https://nodejs.org/zh-cn"
                },
                {
                  "icon": "https://expressjs.com/images/favicon.png",
                  "title": "Express",
                  "desc": "基于 Node.js 平台,快速、开放、极简的 Web 开发框架",
                  "link": "https://expressjs.com"
                },
                {
                  "icon": "/icons/koa.svg",
                  "title": "Koa",
                  "desc": "基于 Node.js 平台的下一代 web 开发框架",
                  "link": "https://koajs.com"
                },
                {
                  "icon": "https://www.eggjs.org/favicon.png",
                  "title": "Egg",
                  "desc": "为企业级框架和应用而生",
                  "link": "https://www.eggjs.org/zh-CN"
                },
                {
                  "icon": "https://d33wubrfki0l68.cloudfront.net/e937e774cbbe23635999615ad5d7732decad182a/26072/logo-small.ede75a6b.svg",
                  "title": "Nest.js 中文文档",
                  "desc": "用于构建高效且可伸缩的服务端应用程序的渐进式 Node.js 框架",
                  "link": "https://docs.nestjs.cn"
                }
              ]
            },
            {
              "title": "可视化",
              "items": [
                {
                  "icon": "https://echarts.apache.org/zh/images/favicon.png",
                  "title": "ECharts",
                  "desc": "一个基于 JavaScript 的开源可视化图表库",
                  "link": "https://echarts.apache.org/zh/index.html"
                },
                {
                  "icon": "https://mdn.alipayobjects.com/huamei_qa8qxu/afts/img/A*A-lcQbVTpjwAAAAAAAAAAAAADmJ7AQ/original",
                  "title": "AntV",
                  "desc": "蚂蚁集团全新一代数据可视化解决方案,致力于提供一套简单方便、专业可靠、无限可能的数据可视化最佳实践。",
                  "link": "https://antv.vision/zh/"
                },
                {
                  "icon": "https://d3js.org/logo.svg",
                  "title": "D3.js",
                  "desc": "一个遵循 Web 标准用于可视化数据的 JavaScript 库",
                  "link": "https://d3js.org"
                },
                {
                  "icon": "https://www.chartjs.org/favicon.ico",
                  "title": "Chart.js",
                  "desc": "一个简单而灵活的 JavaScript 图表库",
                  "link": "https://www.chartjs.org"
                },
                {
                  "icon": "https://threejs.org/files/favicon.ico",
                  "title": "Three.js",
                  "desc": "JavaScript 3d 库",
                  "link": "https://threejs.org"
                }
              ]
            },
            {
              "title": "编译&构建&打包",
              "items": [
                {
                  "icon": "https://www.webpackjs.com/icon_180x180.png",
                  "title": "Webpack 中文网",
                  "desc": "一个用于现代 JavaScript 应用程序的静态模块打包工具",
                  "link": "https://www.webpackjs.com"
                },
                {
                  "icon": "https://cn.vitejs.dev/logo.svg",
                  "title": "Vite 中文文档",
                  "desc": "下一代前端工具链",
                  "link": "https://cn.vitejs.dev"
                },
                {
                  "icon": "https://www.rollupjs.com/img/favicon.png",
                  "title": "Rollup",
                  "desc": "Rollup 是一个 JavaScript 模块打包器",
                  "link": "https://www.rollupjs.com"
                },
                {
                  "icon": "https://turbo.build/images/favicon-dark/apple-touch-icon.png",
                  "title": "Turbo",
                  "desc": "Turbo is an incremental bundler and build system optimized for JavaScript and TypeScript, written in Rust",
                  "link": "https://turbo.build"
                },
                {
                  "icon": "https://www.babeljs.cn/img/favicon.png",
                  "title": "Babel",
                  "desc": "Babel 是一个 JavaScript 编译器",
                  "link": "https://www.babeljs.cn"
                },
                {
                  "icon": "https://esbuild.github.io/favicon.svg",
                  "title": "esbuild",
                  "desc": "An extremely fast bundler for the web",
                  "link": "https://esbuild.github.io"
                },
                {
                  "icon": "https://swc.rs/favicon/apple-touch-icon.png",
                  "title": "SWC",
                  "desc": "Rust-based platform for the Web",
                  "link": "https://swc.rs"
                },
                {
                  "icon": "/icons/unbuild.svg",
                  "title": "unbuild",
                  "desc": "📦 A unified JavaScript build system",
                  "link": "https://github.com/unjs/unbuild"
                }
              ]
            },
            {
              "title": "站点生成器",
              "items": [
                {
                  "icon": "https://astro.build/favicon.svg",
                  "title": "Astro",
                  "desc": "一个现代化的轻量级静态站点生成器",
                  "link": "https://astro.build"
                },
                {
                  "icon": "https://cn.vuejs.org/logo.svg",
                  "title": "VitePress",
                  "desc": "由 Vite 和 Vue 驱动的静态网站生成器",
                  "link": "https://vitepress.dev"
                },
                {
                  "icon": "https://cn.vuejs.org/logo.svg",
                  "title": "VuePress",
                  "desc": "Vue 驱动的静态网站生成器",
                  "link": "https://vuepress.vuejs.org/zh"
                },
                {
                  "icon": "https://gw.alipayobjects.com/zos/bmw-prod/d3e3eb39-1cd7-4aa5-827c-877deced6b7e/lalxt4g3_w256_h256.png",
                  "title": "dumi",
                  "desc": "基于 Umi 为组件研发而生的静态站点框架",
                  "link": "https://d.umijs.org"
                },
                {
                  "icon": "https://docusaurus.io/zh-CN/img/docusaurus.ico",
                  "title": "Docusaurus",
                  "desc": "基于 React 的静态网站生成器",
                  "link": "https://docusaurus.io/zh-CN"
                }
              ]
            },
            {
              "title": "图标库",
              "items": [
                {
                  "icon": "https://img.alicdn.com/imgextra/i4/O1CN01Z5paLz1O0zuCC7osS_!!6000000001644-55-tps-83-82.svg",
                  "title": "iconfont",
                  "desc": "国内功能很强大且图标内容很丰富的矢量图标库,提供矢量图标下载、在线存储、格式转换等功能",
                  "link": "https://www.iconfont.cn"
                },
                {
                  "icon": "https://lf1-cdn2-tos.bytegoofy.com/bydesign/iconparksite/logo.svg",
                  "title": "IconPark 图标库",
                  "desc": "IconPark图标库是一个通过技术驱动矢量图标样式的开源图标库,可以实现根据单一 SVG 源文件变换出多种主题, 具备丰富的分类、更轻量的代码和更灵活的使用场景;致力于构建高质量、统一化、可定义的图标资源,让大多数人都能够选择适合自己的风格图标",
                  "link": "https://iconpark.oceanengine.com/official"
                },
                {
                  "icon": "https://emoji.muan.co/appicon.png",
                  "title": "Emoji searcher",
                  "desc": "Emoji 表情大全",
                  "link": ""
                }
              ]
            },
            {
              "title": "社区",
              "items": [
                {
                  "title": "Github",
                  "icon": {
                    "svg": "<svg role=\"img\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\"><title>GitHub</title><path d=\"M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12\"/></svg>"
                  },
                  "desc": "一个面向开源及私有软件项目的托管平台",
                  "link": "https://github.com"
                },
                {
                  "icon": "https://cdn.sstatic.net/Sites/stackoverflow/Img/apple-touch-icon.png",
                  "title": "Stack Overflow",
                  "desc": "全球最大的技术问答网站",
                  "link": "https://stackoverflow.com"
                },
                {
                  "title": "稀土掘金",
                  "icon": "https://lf3-cdn-tos.bytescm.com/obj/static/xitu_juejin_web//static/favicons/apple-touch-icon.png",
                  "desc": "面向全球中文开发者的技术内容分享与交流平台",
                  "link": "https://juejin.cn"
                },
                {
                  "title": "V2EX",
                  "icon": "https://www.v2ex.com/static/icon-192.png",
                  "desc": "一个关于分享和探索的地方",
                  "link": "https://www.v2ex.com"
                },
                {
                  "title": "SegmentFault 思否",
                  "icon": "https://static.segmentfault.com/main_site_next/0dc4bace/touch-icon.png",
                  "desc": "技术问答开发者社区",
                  "link": "https://segmentfault.com"
                },
                {
                  "title": "博客园",
                  "icon": "/icons/cnblogs.svg",
                  "desc": "博客园是一个面向开发者的知识分享社区",
                  "link": "https://www.cnblogs.com"
                },
                {
                  "title": "知乎",
                  "icon": "https://static.zhihu.com/heifetz/assets/apple-touch-icon-60.362a8eac.png",
                  "desc": "中文互联网高质量的问答社区和创作者聚集的原创内容平台",
                  "link": "https://juejin.cn"
                }
              ]
            }
          ]
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "我的导航",
        "date": "2025-10-10 14:31:02",
        "capture": "欢迎访问网站导航页面!\n\n_导航页面功能已启用_"
      },
      {
        "url": "/archives.html",
        "relativePath": "/@pages/archivesPage.html",
        "frontmatter": {
          "title": "归档",
          "permalink": "/archives",
          "archivesPage": true,
          "layout": "page",
          "article": false,
          "sidebar": false
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "归档",
        "date": "2025-10-10 14:31:02",
        "capture": ""
      },
      {
        "url": "/sdoc/dev-tool/keil/126b08a8b79e2ecaa634dd81.html",
        "relativePath": "/sdoc/01-开发工具/01-keil/LV001-keil简介.html",
        "frontmatter": {
          "title": "LV001-keil简介",
          "date": "2025-09-16 07:54:22",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/dev-tool/keil/126b08a8b79e2ecaa634dd81",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "aa634dd813594b2686f1ae7b5b6911d4",
            "useduuid": "aa634dd81"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV001-keil简介",
        "date": "2025-09-16 07:54:22",
        "excerpt": "",
        "capture": "一、Keil简介\n 1. 简介\nMDK 源自德国的 KEIL 公司,是 RealView MDK 的简称。在全球 MDK 被超过 10 万的嵌入式开发工程师使用。是目前针对 ARM 处理器,尤其是 Cortex M 内核处理器的最佳开发工具。  \nKeil MDK面向各种STM32微控制器产品的全面软件开发解决方案,提供创建、编译和调试嵌入式应用程序时所需的一切资源。MDK包括真正的Arm编译器和易于使用的Keil uVision IDE/调试器,可与STM32CubeMX和软件包连接。MDK还提供各种专业的中间件组件。\nMDK5 向后兼容 MDK4 和 MDK3 等,以前的项目同样可以在 M"
      },
      {
        "url": "/sdoc/dev-tool/keil/126b08aa5e32382c0ab32a01.html",
        "relativePath": "/sdoc/01-开发工具/01-keil/LV002-工程创建.html",
        "frontmatter": {
          "title": "LV002-工程创建",
          "date": "2025-09-16 18:36:02",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/dev-tool/keil/126b08aa5e32382c0ab32a01",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "c0ab32a01a744756b6c0c3e4231ed9aa",
            "useduuid": "c0ab32a01"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV002-工程创建",
        "date": "2025-09-16 18:36:02",
        "excerpt": "<p>接下来就是工程创建啦。</p>\n",
        "capture": "接下来就是工程创建啦。\n 一、库文件\n在STM32的开发中,ST(意法半导体)提供了多种软件库来帮助开发者简化开发流程,提高开发效率。其中,标准外设库(Standard Peripheral Library, SPL) 和 硬件抽象层库(Hardware Abstraction Layer Library, HAL) 是最为经典和常用的两种。\n 1. 标准外设库 (Standard Peripheral Library, SPL)\n标准库,也称为SPL,是ST早期为STM32F1, F2, F4, L1等系列提供的库函数。它是对STM32芯片底层寄存器操作的一种封装,提供了一组C语言API用于"
      },
      {
        "url": "/sdoc/dev-tool/keil/126b08e6a9c4187125e57a5f.html",
        "relativePath": "/sdoc/01-开发工具/01-keil/LV010-程序与编译.html",
        "frontmatter": {
          "title": "LV010-程序与编译",
          "date": "2025-09-20 13:51:08",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/dev-tool/keil/126b08e6a9c4187125e57a5f",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "125e57a5ff854ebaa58b6fff51b99a11",
            "useduuid": "125e57a5f"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV010-程序与编译",
        "date": "2025-09-20 13:51:08",
        "excerpt": "",
        "capture": "一、编译过程\n 1. 编译过程简介\n我们简单了解下MDK的编译过程,它与其它编译器的工作过程是类似的:\n&lt;img src=\"./LV010-程序与编译/img/MDK002.jpg\" alt=\"MDK编译过程\" style=\"zoom: 67%;\" /\n(1) 编译,MDK软件使用的编译器是 armcc 和 armasm , 它们根据每个C/C++和汇编源文件编译成对应的以“ .o ”为后缀名的对象文件(Object Code,也称目标文件), 其内容主要是从源文件编译得到的机器码,包含了代码、数据以及调试使用的信息;\n(2) 链接, 链接器 armlink 把各个 .o 文件及库文件链"
      },
      {
        "url": "/sdoc/dev-tool/keil/126b0913857d3670d6f0eef1.html",
        "relativePath": "/sdoc/01-开发工具/01-keil/LV015-MDK工程文件简介.html",
        "frontmatter": {
          "title": "LV015-MDK工程文件简介",
          "date": "2025-09-23 07:49:41",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/dev-tool/keil/126b0913857d3670d6f0eef1",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "0d6f0eef153042fc862dc752cb0e3c2d",
            "useduuid": "0d6f0eef1"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV015-MDK工程文件简介",
        "date": "2025-09-23 07:49:41",
        "excerpt": "",
        "capture": "本篇笔记主要是参考的野火的文档。使用的工程呢可以去这里下载:ebf_stm32f103_badao_std_code: 野火STM32F103 霸道开发板 标准库教程配套代码 (gitee.com)\n\n 一、MDK工程文件类型\n 1. Project工程文件\n&lt;table&gt;\n    &lt;tbody&gt;\n        &lt;tr&gt;&lt;td align=\"left\"&gt;后缀&lt;/td&gt;&lt;td align=\"left\"&gt;说明&lt;/td&gt;&lt;/tr&gt;\n        &lt;tr&gt;&lt;td align=\"left"
      },
      {
        "url": "/sdoc/dev-tool/keil/126b091384f9220a0ff9cf1d.html",
        "relativePath": "/sdoc/01-开发工具/01-keil/LV016-Output目录文件.html",
        "frontmatter": {
          "title": "LV016-Output目录文件",
          "date": "2025-09-23 07:48:09",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/dev-tool/keil/126b091384f9220a0ff9cf1d",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "a0ff9cf1dff34a1790997424e34bac30",
            "useduuid": "a0ff9cf1d"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV016-Output目录文件",
        "date": "2025-09-23 07:48:09",
        "excerpt": "",
        "capture": "本篇笔记主要是参考的野火的文档。使用的工程呢可以去这里下载:ebf_stm32f103_badao_std_code: 野火STM32F103 霸道开发板 标准库教程配套代码 (gitee.com)\n\n 一、Output目录位置选择\nOutput目录是存放输出文件以及一些中间文件的目录,这个目录是可以配置的:\n&lt;img src=\"./LV016-Output目录文件/img/image-20230529200416215-1758358981825-2.png\" alt=\"image-20230529200416215\" style=\"zoom: 67%;\" /&gt;\n点击 MDK 中"
      },
      {
        "url": "/sdoc/dev-tool/keil/126b0913865605b5493dc70e.html",
        "relativePath": "/sdoc/01-开发工具/01-keil/LV017-Listing目录文件.html",
        "frontmatter": {
          "title": "LV017-Listing目录文件",
          "date": "2025-09-23 07:51:58",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/dev-tool/keil/126b0913865605b5493dc70e",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "5493dc70ee6849e0b32a91f39d8e2488",
            "useduuid": "5493dc70e"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV017-Listing目录文件",
        "date": "2025-09-23 07:51:58",
        "excerpt": "",
        "capture": "本篇笔记主要是参考的野火的文档。使用的工程呢可以去这里下载:ebf_stm32f103_badao_std_code: 野火STM32F103 霸道开发板 标准库教程配套代码 (gitee.com)\n\n在Listing目录下包含了.map及.lst文件,它们都是文本格式的,可使用Windows的记事本软件打开。其中lst文件仅包含了一些汇编符号的链接信息,这些文件中重点是map文件。\n 一、Listing目录位置选择\n这里存放的都是链接器链接过程中用到的或者生成的文件,我们也是可以自行配置目录位置的:\n&lt;img src=\"./LV017-Listing目录文件/img/image-202"
      },
      {
        "url": "/sdoc/dev-tool/keil/126b08e6cfb5032dbc05b46a.html",
        "relativePath": "/sdoc/01-开发工具/01-keil/LV020-SCT分散加载文件.html",
        "frontmatter": {
          "title": "LV020-SCT分散加载文件",
          "date": "2025-09-20 14:48:21",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/dev-tool/keil/126b08e6cfb5032dbc05b46a",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "dbc05b46abca47d8a176762f5148dc50",
            "useduuid": "dbc05b46a"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV020-SCT分散加载文件",
        "date": "2025-09-20 14:48:21",
        "excerpt": "",
        "capture": "这里继续学习MDK的工程文件`*.sct`,使用的工程呢可以去这里下载:ebf_stm32f103_badao_std_code: 野火STM32F103 霸道开发板 标准库教程配套代码 (gitee.com)\n\n 一、sct分散加载文件简介\n当工程按默认配置构建时,MDK会根据我们选择的芯片型号,获知芯片的内部FLASH及内部SRAM存储器概况,生成一个以工程名命名的后缀为\\*.sct的分散加载文件(Linker Control File,scatter loading),链接器根据该文件的配置分配各个节区地址,生成分散加载代码,因此我们通过修改该文件可以定制具体节区的存储位置。例如,我们可"
      },
      {
        "url": "/sdoc/dev-tool/keil/126b08e6d335070a7fd1934d.html",
        "relativePath": "/sdoc/01-开发工具/01-keil/LV025-SCT文件应用.html",
        "frontmatter": {
          "title": "LV025-SCT文件应用",
          "date": "2025-09-20 14:57:17",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/dev-tool/keil/126b08e6d335070a7fd1934d",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "a7fd1934dbcb4eef93f57d3dce4e0059",
            "useduuid": "a7fd1934d"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV025-SCT文件应用",
        "date": "2025-09-20 14:57:17",
        "excerpt": "",
        "capture": "这一篇笔记主要是通过SCT文件来实现变量的分配位置,这里需要后边FSMC驱动SRAM的知识。由于内存管理对应用程序非常重要,若修改 sct 文件,不使用默认配置,对工程影响非常大,容易导致出错,所以我们这里也是跟着教程做了两个实验,来学习 sct 文件的应用细节。\n\n 一、自定义SCT文件\n注意这里我们要根据上一节笔记,取消MDK使用默认的SCT文件。\n&lt;img src=\"./LV025-SCT文件应用/img/image-20230529215228408.png\" alt=\"image-20230529215228408\" style=\"zoom: 50%;\" /&gt;\n在 MDK"
      },
      {
        "url": "/sdoc/dev-tool/keil/126b08e76d70287e70afead6.html",
        "relativePath": "/sdoc/01-开发工具/01-keil/LV040-在线调试.html",
        "frontmatter": {
          "title": "LV040-在线调试",
          "date": "2025-09-20 18:52:00",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/dev-tool/keil/126b08e76d70287e70afead6",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "e70afead6dd14692ad3b3749eb2cad4d",
            "useduuid": "e70afead6"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV040-在线调试",
        "date": "2025-09-20 18:52:00",
        "excerpt": "",
        "capture": "有了J-Link或者ST-Link,我们就可以在线调试代码,这里以我我使用的J-Link为例,简单介绍一下界面,后边的功能就自己摸索吧。\n 一、连接与配置\n最开始肯定是连接好J-Link、电脑和开发板啦,然后就是MDK工程的配置,这个可以看前边J-Link的使用。\n- 01-开发工具/10-下载与调试/LV002-JLink怎么使用.md\n- 01-开发工具/10-下载与调试/LV015-STLink怎么使用.md\n 二、开始在线调试\n 1. 启动\n我们可以点击工具栏的这个按钮进入调试,或者就是从菜单栏【Debug】&rarr;【Start/Stop Debug Session】启动:\n&lt"
      },
      {
        "url": "/sdoc/dev-tool/stm32cube/126b08aa58bc0838d250f7bd.html",
        "relativePath": "/sdoc/01-开发工具/02-STM32Cube/LV001-STM32CubeMX简介.html",
        "frontmatter": {
          "title": "LV001-STM32CubeMX简介",
          "date": "2025-09-16 18:22:04",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/dev-tool/stm32cube/126b08aa58bc0838d250f7bd",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "8d250f7bdb9d4b4fb822b135635cdf20",
            "useduuid": "8d250f7bd"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV001-STM32CubeMX简介",
        "date": "2025-09-16 18:22:04",
        "excerpt": "",
        "capture": "一、STM32CubeMX\n 1. 简介\n&lt;img src=\"./LV001-STM32CubeMX简介/img/image-20230419230755825.png\" alt=\"image-20230419230755825\" style=\"zoom:50%;\" /\nSTM32CubeMX是ST公司出品的一款C代码生成器软件,它是一种图形工具,通过分步过程可以非常轻松地配置STM32微控制器和微处理器,以及为Arm® Cortex®-M内核或面向Arm® Cortex®-A内核的特定Linux®设备树生成相应的初始化C代码。具有以下功能:\n- 直观的STM32微控制器和微处理器选择\n"
      },
      {
        "url": "/sdoc/dev-tool/stm32cube/126b08aaf7c11b6e19f8d60a.html",
        "relativePath": "/sdoc/01-开发工具/02-STM32Cube/LV002-STM32CubeMX工程创建.html",
        "frontmatter": {
          "title": "LV002-STM32CubeMX工程创建",
          "date": "2025-09-16 22:29:13",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/dev-tool/stm32cube/126b08aaf7c11b6e19f8d60a",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "e19f8d60a0f64d51a22bc5a8a04bf26f",
            "useduuid": "e19f8d60a"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV002-STM32CubeMX工程创建",
        "date": "2025-09-16 22:29:13",
        "excerpt": "",
        "capture": "一、工程创建\n 1. 芯片型号选择\n这个创建工程就比较简单了:\n- 【File】&rarr;【New Project】\n&lt;img src=\"./LV002-STM32CubeMX工程创建/img/image-20230419232250397.png\" alt=\"image-20230419232250397\"  /\n- 【选择芯片型号】&rarr;【Start Project】\n&lt;img src=\"./LV002-STM32CubeMX工程创建/img/image-20230419232522160.png\" alt=\"image-20230419232522160\"  /&gt"
      },
      {
        "url": "/sdoc/dev-tool/stm32cube/126b08e6edcf211c7df7916d.html",
        "relativePath": "/sdoc/01-开发工具/02-STM32Cube/LV010-Makefile管理工程.html",
        "frontmatter": {
          "title": "LV010-Makefile管理工程",
          "date": "2025-09-20 15:25:27",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/dev-tool/stm32cube/126b08e6edcf211c7df7916d",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "c7df7916d51c40f295ec8bdf0e20a228",
            "useduuid": "c7df7916d"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV010-Makefile管理工程",
        "date": "2025-09-20 15:25:27",
        "excerpt": "",
        "capture": "一、STM32CubeMX生成工程\n 1. 生成Makefile\n前边我们已经熟悉了一下STM32CubeMX软件的使用方法,以及创建和导出MDK工程的过程,接下来我们创建一个含有Makefile文件的工程。\n- (1)【File】&rarr;【New Project】\n&lt;img src=\"./LV010-Makefile管理工程/img/image-20230419232250397.png\" alt=\"image-20230419232250397\"  /\n- (2)【选择芯片型号】&rarr;【Start Project】\n&lt;img src=\"./LV010-Makefile"
      },
      {
        "url": "/sdoc/dev-tool/stm32cube/126b08e6ef7626b7c442bfe2.html",
        "relativePath": "/sdoc/01-开发工具/02-STM32Cube/LV012-Makefile文件分析.html",
        "frontmatter": {
          "title": "LV012-Makefile文件分析",
          "date": "2025-09-20 15:29:50",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/dev-tool/stm32cube/126b08e6ef7626b7c442bfe2",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "7c442bfe2f7348608819bf852cebb54e",
            "useduuid": "7c442bfe2"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV012-Makefile文件分析",
        "date": "2025-09-20 15:29:50",
        "excerpt": "",
        "capture": "这篇笔记主要是STM32CubeMX软件生成的Makefile文件的学习笔记。这篇笔记按照顺序从上到下分析Makefile文件。\n 一、完整的Makefile文件\n```makefile\n File automatically-generated by tool: [projectgenerator] version: [3.19.2] date: [Thu Apr 27 16:55:10 CST 2023] \n ------------------------------------------------\n Generic Makefile (based on gcc)\n ChangeLo"
      },
      {
        "url": "/sdoc/dev-tool/keil/126b08e6f2e40a653e71bc02.html",
        "relativePath": "/sdoc/01-开发工具/02-STM32Cube/LV015-LD链接脚本.html",
        "frontmatter": {
          "title": "LV040-LD链接脚本",
          "date": "2025-09-20 15:38:28",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/dev-tool/keil/126b08e6f2e40a653e71bc02",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "53e71bc02dd346aeac5749700b205317",
            "useduuid": "53e71bc02"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV040-LD链接脚本",
        "date": "2025-09-20 15:38:28",
        "excerpt": "<p>这篇笔记主要是STM32CubeMX软件生成的STM32F103ZETx_FLASH.ld链接文件的学习笔记。这篇笔记按照顺序从上到下分析STM32F103ZETx_FLASH.ld文件。关于GNU链接脚本的详细语法我们可以参考这里:<a href=\"https://sourceware.org/binutils/docs/\" target=\"_blank\" rel=\"noreferrer\">Documentation for binutils 2.40 (sourceware.org)</a>,这里好像还有在线的文档。**【注意】**生成Makefile文件的话,链接脚本是自动生成的,并且每一次重新生成的时候,<strong>链接脚本将会重新生成</strong>,也就是说,若是我们修改了链接脚本内容的话,只要我们通过STM32CubeMX更新工程,我们修改的部分都会被删除。</p>\n",
        "capture": "这篇笔记主要是STM32CubeMX软件生成的STM32F103ZETx_FLASH.ld链接文件的学习笔记。这篇笔记按照顺序从上到下分析STM32F103ZETx_FLASH.ld文件。关于GNU链接脚本的详细语法我们可以参考这里:Documentation for binutils 2.40 (sourceware.org),这里好像还有在线的文档。【注意】生成Makefile文件的话,链接脚本是自动生成的,并且每一次重新生成的时候,链接脚本将会重新生成,也就是说,若是我们修改了链接脚本内容的话,只要我们通过STM32CubeMX更新工程,我们修改的部分都会被删除。\n 一、参考资料\n关于链"
      },
      {
        "url": "/sdoc/dev-tool/stm32cube/126b08e6f0211b46eabe9106.html",
        "relativePath": "/sdoc/01-开发工具/02-STM32Cube/LV030-STM32CubeIDE.html",
        "frontmatter": {
          "title": "LV030-STM32CubeIDE",
          "date": "2025-09-20 15:31:21",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/dev-tool/stm32cube/126b08e6f0211b46eabe9106",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "6eabe9106e39465d81b7853e19f74deb",
            "useduuid": "6eabe9106"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV030-STM32CubeIDE",
        "date": "2025-09-20 15:31:21",
        "excerpt": "",
        "capture": "一、STM32CubeIDE简介\n偶然看到STM32CubeIDE这个么一个软件,它是ST官方推出的IDE,它已经集成了芯片选型,外设配置,代码生成,代码编译,程序烧录和程序调试等一系列功能,可以说STM32CubeMX是它的其中一个功能而已。这里对这个软件做一个简单的了解。\n 1. 简介\nSTM32CubeIDE是一种高级C/C++开发平台,具有STM32微控制器和微处理器的外设配置、代码生成、代码编译和调试功能。它基于Eclipse®/CDT™框架和用于开发的GCC工具链,以及用于调试的GDB。它支持集成数以百计的现有插件,正是这些插件使Eclipse® IDE的功能趋于完整。\nSTM32"
      },
      {
        "url": "/sdoc/dev-tool/burn-and-debug/126b08ab16fa3e011692369d.html",
        "relativePath": "/sdoc/01-开发工具/10-下载与调试/LV001-下载与调试概述.html",
        "frontmatter": {
          "title": "LV001-下载与调试概述",
          "date": "2025-09-16 23:09:06",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/dev-tool/burn-and-debug/126b08ab16fa3e011692369d",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "11692369dc744332bc6f2569dd8ec58a",
            "useduuid": "11692369d"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV001-下载与调试概述",
        "date": "2025-09-16 23:09:06",
        "excerpt": "",
        "capture": "一、概述\nSTM32 常见的下载方式有三种:  \n| 下载方式 | 使用接口                 | 下载条件                                             | 优缺点                                                       |\n| -------------------------------------------------------- | ------------------------ | --------------------------------------------"
      },
      {
        "url": "/sdoc/dev-tool/burn-and-debug/126b08ab15ee0921c4f7fd64.html",
        "relativePath": "/sdoc/01-开发工具/10-下载与调试/LV002-JLink怎么使用.html",
        "frontmatter": {
          "title": "LV002-JLink怎么使用",
          "date": "2025-09-16 23:06:38",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/dev-tool/burn-and-debug/126b08ab15ee0921c4f7fd64",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "1c4f7fd64909407cb589ad3348a0c376",
            "useduuid": "1c4f7fd64"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV002-JLink怎么使用",
        "date": "2025-09-16 23:06:38",
        "excerpt": "",
        "capture": "一、驱动安装\n 1. 在哪里下载?\n我们到官网去下载一个:SEGGER - The Embedded Experts - Downloads - J-Link / J-Trace,可以选一个版本使用,我这里选的V7.86h,后我们可得到一个JLink_Windows_V786h_x86_64.exe可执行文件。\n&lt;img src=\"./LV002-JLink怎么使用/img/image-20230424172108179.png\" alt=\"image-20230424172108179\" style=\"zoom: 67%;\" /\n 2. 安装驱动\n这个由于我之前安装过,这里就不记录未安"
      },
      {
        "url": "/sdoc/dev-tool/burn-and-debug/126b08b7f6ce25a6c770f3b5.html",
        "relativePath": "/sdoc/01-开发工具/10-下载与调试/LV010-JFlash简介.html",
        "frontmatter": {
          "title": "LV010-JFlash简介",
          "date": "2025-09-17 07:46:38",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/dev-tool/burn-and-debug/126b08b7f6ce25a6c770f3b5",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "6c770f3b50d84d7fad7f77bc05f872fc",
            "useduuid": "6c770f3b5"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV010-JFlash简介",
        "date": "2025-09-17 07:46:38",
        "excerpt": "",
        "capture": "一、JFlash简介\n我们有源码的时候可以使用MDK编译,然后一键下载,那我们要是没有源码怎么办?用串口吗?当然可以,还有别的办法吗?有啊,下边我们就来了解一下吧。\nJ-Flash 是单独的Flash ISP烧写软件,是一种独立Flash编程软件了,可以把单独的bin文件或者hex文件烧写到单片机的flash里面去。它是在安装 J-Link 驱动时自带的一款Flash ISP软件,支持bin格式、hex格式、srec格式(Motorola的)。\n 二、安装jFlash\n这个软件一般是随着J-Link驱动安装一起自动安装的,所以在我们安装好J-Link驱动的时候,这个软件就已经被安装好了,没有必"
      },
      {
        "url": "/sdoc/dev-tool/burn-and-debug/126b08b9c98b11187c20e13a.html",
        "relativePath": "/sdoc/01-开发工具/10-下载与调试/LV015-STLink怎么使用.html",
        "frontmatter": {
          "title": "LV015-STLink怎么使用",
          "date": "2025-09-17 19:41:23",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/dev-tool/burn-and-debug/126b08b9c98b11187c20e13a",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "87c20e13a48a44dfb380f22a1b102e34",
            "useduuid": "87c20e13a"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV015-STLink怎么使用",
        "date": "2025-09-17 19:41:23",
        "excerpt": "",
        "capture": "我这有一款ST-Link,这个是10脚的,引脚图直接画在正面了,如下图所示,按照排线的孔插入对应底座就可以啦。\n&lt;img src=\"./LV015-STLink怎么使用/img/image-20230422161832141.png\" alt=\"image-20230422161832141\" style=\"zoom: 50%;\" /\n 一、驱动安装\n 1. 驱动下载\n我们到官网去下载一个:STSW-LINK009 - 为Windows 7、Windows 8、Windows 10签署的ST-LINK、ST-LINK/V2、ST-LINK/V2-1 USB驱动 - 意法半导体STMicr"
      },
      {
        "url": "/sdoc/dev-tool/burn-and-debug/126b08b9cb90276fafba387f.html",
        "relativePath": "/sdoc/01-开发工具/10-下载与调试/LV020-ST-LINK-Utility简介.html",
        "frontmatter": {
          "title": "LV020-ST-LINK-Utility简介",
          "date": "2025-09-17 19:46:40",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/dev-tool/burn-and-debug/126b08b9cb90276fafba387f",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "fafba387f5f84aab849e4d8b464e22ad",
            "useduuid": "fafba387f"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV020-ST-LINK-Utility简介",
        "date": "2025-09-17 19:46:40",
        "excerpt": "",
        "capture": "一、简介\n我们有源码的时候可以使用MDK编译,然后一键下载,那我们要是没有源码怎么办?用串口吗?当然可以,还有别的办法吗?有啊,下边我们就来了解一下吧。\nSTM32 ST-LINK Utility这个软件工具其实主要就是配套“ST-LINK”这个下载工具一起使用的上位机软件。因此使用STM32 ST-LINK Utility上位机软件需要有一个ST-LINK工具才行。它的功能和J-Link对应的工具类似,用于烧写代码。\nSTM32 ST-LINK Utility工具在产品开发过程中测试一些其他版本的代码,可以直接下载hex,而不用打开工程再编译去下载。 当开发完一个STM32产品,需要量产的时"
      },
      {
        "url": "/sdoc/dev-tool/burn-and-debug/126b08b9cea618afd74b243b.html",
        "relativePath": "/sdoc/01-开发工具/10-下载与调试/LV030-串口下载.html",
        "frontmatter": {
          "title": "LV030-串口下载",
          "date": "2025-09-17 19:54:30",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/dev-tool/burn-and-debug/126b08b9cea618afd74b243b",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "fd74b243b22149fe9c55a56a7b50b6d5",
            "useduuid": "fd74b243b"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV030-串口下载",
        "date": "2025-09-17 19:54:30",
        "excerpt": "<p>单片机开可以用串口下载程序,这部分来了解一下。</p>\n",
        "capture": "单片机开可以用串口下载程序,这部分来了解一下。\n 一、CH340驱动\n 1. CH340简介\n一般来说我们通过电脑连接到开发板的串口是用的RS232:\n&lt;img src=\"./LV030-串口下载/img/image-20220918134419265.png\" alt=\"image-20220918134419265\" style=\"zoom: 50%;\" /\n而RS-232 电平需要 DB9 接口 (也就是常说的 COM口)。现在的电脑很多都没有 DB9 接口了,取而代之的是 USB 接口,所以就催生出了很多 USB 转串口 TTL 芯片,比如 CH340、PL2303 等。通过这些"
      },
      {
        "url": "/sdoc/basic/overview/126b08ba0eae364f31526d00.html",
        "relativePath": "/sdoc/10-基础篇/01-概述/LV001-ARM体系结构.html",
        "frontmatter": {
          "title": "LV001-ARM体系结构",
          "date": "2025-09-17 21:18:22",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/basic/overview/126b08ba0eae364f31526d00",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "f31526d004e841cf942bb1c43e30f261",
            "useduuid": "f31526d00"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV001-ARM体系结构",
        "date": "2025-09-17 21:18:22",
        "excerpt": "",
        "capture": "一、 ARM简介\n 1. 为什么要学习ARM?\n在我们的生活中,STM32的应用得很广泛,像下边这些产品,可能都会用到STM32:\n&lt;img src=\"./LV001-ARM体系结构/img/image-20230408170339636.png\" alt=\"image-20230408170339636\" style=\"zoom:33%;\" /\n而STM32是一个微处理器,也就是MCU,它的结构一般如下:\n&lt;img src=\"./LV001-ARM体系结构/img/image-20230408170245470.png\" alt=\"image-20230408170245470\""
      },
      {
        "url": "/sdoc/basic/overview/126b08ba13b3329986816cf4.html",
        "relativePath": "/sdoc/10-基础篇/01-概述/LV010-常见存储器.html",
        "frontmatter": {
          "title": "LV010-常见存储器",
          "date": "2025-09-17 21:31:07",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/basic/overview/126b08ba13b3329986816cf4",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "986816cf43ae496ea97f2ac2344cf4bc",
            "useduuid": "986816cf4"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV010-常见存储器",
        "date": "2025-09-17 21:31:07",
        "excerpt": "",
        "capture": "一、单片机中的FLASH和SRAM\n我们在进行STM32芯片选型的时候,会看到这样的参数,可以看STM32F103选型页面:\n&lt;img src=\"./LV010-常见存储器/img/image-20230504212342232.png\" alt=\"image-20230504212342232\" style=\"zoom:50%;\" /\n比如这里,我们使用的STM32F103ZE系列芯片,有512KB的Flash和64KB的SRAM,这是什么意思呢?\n在STM32中 SRAM 及 FLASH 是作为内存和程序存储空间的。我们平时使用电脑,会考虑内存大小,有4GB、8GB、16GB等,也会"
      },
      {
        "url": "/sdoc/basic/overview/126b08c738bc16b5b982661d.html",
        "relativePath": "/sdoc/10-基础篇/01-概述/LV020-CortexM0简介.html",
        "frontmatter": {
          "title": "LV020-CortexM0简介",
          "date": "2025-09-18 07:45:56",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/basic/overview/126b08c738bc16b5b982661d",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "5b982661dbf54e3db91954b53e220c58",
            "useduuid": "5b982661d"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV020-CortexM0简介",
        "date": "2025-09-18 07:45:56",
        "excerpt": "",
        "capture": "课程中使用的是STM32F0系列的芯片,用的是Cortex-M0的内核,所以这里的笔记是关于Cortex-M0的,对于我后来使用Cortex-M3内核大体上的的知识是基本通用的。\n 一、Cortex-M0处理器简介\n 1. Cortex-M 系列产品\nCortex-M 系列产品主要包括 Cortex-M0、Cortex-M1、Cortex-M3、Cortex-M4、Cortex-M7 等,其中 Cortex-M0 主打低功耗和混合信号的处理,M3 主要用来替代 ARM7,重点侧重能耗与性能的平衡,而 M7 则重点放在高性能控制运算领域。\n&lt;img src=\"./LV020-CortexM"
      },
      {
        "url": "/sdoc/basic/overview/126b08e6a7051c291c1151a6.html",
        "relativePath": "/sdoc/10-基础篇/01-概述/LV022-CortexM0存储器映射.html",
        "frontmatter": {
          "title": "LV022-CortexM0存储器映射",
          "date": "2025-09-20 13:44:05",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/basic/overview/126b08e6a7051c291c1151a6",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "91c1151a6b3c4a07b26e0383912b8543",
            "useduuid": "91c1151a6"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV022-CortexM0存储器映射",
        "date": "2025-09-20 13:44:05",
        "excerpt": "",
        "capture": "一、存储器映射\n后面学习STM32的存储器映射的时候,有用到过M0架构的STM32F05x系列芯片,部分笔记记录在这里:\n&lt;img src=\"./LV022-CortexM0存储器映射/img/image-20230409205001077.png\" alt=\"image-20230409205001077\" style=\"zoom:33%;\" /\n被控单元的FLASH,RAM和AHB到APB的桥(即片上外设),这些功能部件共同排列在一个 4GB 的地址空间内。我们在编程的时候,可以通过他们的地址找到他们,然后来操作他们。存储器本身没有地址,给存储器分配地址的过程叫存储器映射。\n&lt;"
      },
      {
        "url": "/sdoc/basic/overview/126b08c73a222946645cba90.html",
        "relativePath": "/sdoc/10-基础篇/01-概述/LV030-CortexM3简介.html",
        "frontmatter": {
          "title": "LV030-CortexM3简介",
          "date": "2025-09-18 07:49:14",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/basic/overview/126b08c73a222946645cba90",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "6645cba90f414432ac823c9d1938fc37",
            "useduuid": "6645cba90"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV030-CortexM3简介",
        "date": "2025-09-18 07:49:14",
        "excerpt": "",
        "capture": "一、概述\nARM(Advanced RISC Machine)是一个32位精简指令集(RISC)处理器架构,应用于许多嵌入式系统设计中。其中,自从ARMv7系列架构开始,ARM公司推出了Cortex系列,并根据不同的应用场景推出了Cortex-M,Cortex-A和Cortex-R三款不同方向的产品。\nARM代表了一种芯片标准,体现了芯片的架构设计,而具体涉及到存储器容量,片上外设,IO引脚数等实现,则是由不同的芯片厂商进行设计的。\n 二、内核与芯片\nARM公司提供内核(如Cortex M3,简称CM3,下同)授权,完整的MCU还需要很多其他组件。芯片公司(ST、 NXP、 TI、 GD、华大"
      },
      {
        "url": "/sdoc/basic/overview/126b08c73d361161792b640a.html",
        "relativePath": "/sdoc/10-基础篇/01-概述/LV035-CortexM3存储器系统.html",
        "frontmatter": {
          "title": "LV035-CortexM3存储器系统",
          "date": "2025-09-18 07:57:02",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/basic/overview/126b08c73d361161792b640a",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "1792b640ad2b40c1a34cc0ea4da24ed9",
            "useduuid": "1792b640a"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV035-CortexM3存储器系统",
        "date": "2025-09-18 07:57:02",
        "excerpt": "",
        "capture": "本篇笔记主要来自于《Cortex-M3 权威指南》的第五章存储器系统。其实有一部分概念在后边一篇笔记中才有所体现,比如什么是寄存器?。\n 一、存储器映射\nCM3 只有一个单一固定的存储器映射。这一点极大地方便了软件在各种 CM3 单片机间的移植。举个简单的例子,各款 CM3 单片机的 NVIC 和 MPU 都在相同的位置布设寄存器,使得它们变得通用。尽管如此, CM3 定出的条条框框是粗线条的,它依然允许芯片制造商灵活地分配存储器空间,以制造出各具特色的单片机产品。存储空间的一些位置用于调试组件等私有外设,这个地址段被称为“ 私有外设区”。私有外设区的组件包括:  \n(1)闪存地址重载及断点单"
      },
      {
        "url": "/sdoc/basic/overview/126b08e5d7b911b28ed9ee4c.html",
        "relativePath": "/sdoc/10-基础篇/01-概述/LV040-CortexM3异常.html",
        "frontmatter": {
          "title": "LV040-CortexM3异常",
          "date": "2025-09-20 08:13:37",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/basic/overview/126b08e5d7b911b28ed9ee4c",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "28ed9ee4c4ee4374a05b403be9d08519",
            "useduuid": "28ed9ee4c"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV040-CortexM3异常",
        "date": "2025-09-20 08:13:37",
        "excerpt": "",
        "capture": "一、常见缩略语含义\n| 缩写 | 说明                               |\n| ---- | ---------------------------------- |\n| IRQ  | 中断请求(通常是指外部中断的请求) |\n| ISR  | 中断服务例程                       |\n| NMI  | 不可屏蔽中断                       |\n| NVIC | 嵌套向量中断控制器                 |\n| PSP  | 进程堆栈指针                       |\n 二、异常\n 1. 什么是异常?"
      },
      {
        "url": "/sdoc/basic/overview/126b08e5fb5429a0009ffc8b.html",
        "relativePath": "/sdoc/10-基础篇/01-概述/LV045-CortexM3的NVIC中断控制.html",
        "frontmatter": {
          "title": "LV040-CortexM3的NVIC中断控制",
          "date": "2025-09-20 09:04:52",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/basic/overview/126b08e5fb5429a0009ffc8b",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "0009ffc8b07a4e459a29f0ba0518592b",
            "useduuid": "0009ffc8b"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV040-CortexM3的NVIC中断控制",
        "date": "2025-09-20 09:04:52",
        "excerpt": "",
        "capture": "一、NVIC简介\nCortex-M3内核有一个专门管理中断的外设NVIC( Nested Vectored Interrupt Controller,嵌套向量中断控制器) , 通过优先级控制中断的嵌套和调度。NVIC是一个总的中断控制器, 无论是来在内核的异常还是外设的外部中断, 都由NVIC统一进行管理。 是 Cortex‐M3 不可分离的一部分, 它与 CM3 内核的逻辑紧密耦合, 有一部分甚至水乳交融在一起。 \nNVIC 与 CM3 内核同声相应,同气相求,相辅相成,里应外合,共同完成对中断的响应。 NVIC作为在内核里的外设,NVIC 的寄存器以存储器映射的方式来访问, 除了包含控制寄"
      },
      {
        "url": "/sdoc/basic/stm32basic/126b08e5feaa2043ad05a48e.html",
        "relativePath": "/sdoc/10-基础篇/10-STM32基础/LV001-STM32概述.html",
        "frontmatter": {
          "title": "LV001-STM32概述",
          "date": "2025-09-20 09:13:06",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/basic/stm32basic/126b08e5feaa2043ad05a48e",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "3ad05a48eac840679287e1b2301b039a",
            "useduuid": "3ad05a48e"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV001-STM32概述",
        "date": "2025-09-20 09:13:06",
        "excerpt": "",
        "capture": "一、STM32简介\n 1. STM32与ARM\n在2004年, ARM公司推出新一代Cortex内核后, ST公司抓住机遇,在很短的时间内就向市场推出了一系列的32位微控制器, 同时提供基于库的开发模式,加快用户研发周期。 STM32就是ST公司基于ARM Cortex-M系列内核设计的微控制器,专为高性能、低功耗、低成本场景设计。  \nSTM32如今产品系列非常丰富, 主要为ARM Cortex-M内核系列MCU,也开始涉及ARM Cortex-A内核\n系列MPU,如下图所示。 \n&lt;img src=\"./LV001-STM32概述/img/image-20230417223005421"
      },
      {
        "url": "/sdoc/basic/stm32basic/126b08e600543a33cc0a657a.html",
        "relativePath": "/sdoc/10-基础篇/10-STM32基础/LV010-嵌入式C语言.html",
        "frontmatter": {
          "title": "LV010-嵌入式C语言",
          "date": "2025-09-20 09:17:32",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/basic/stm32basic/126b08e600543a33cc0a657a",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "3cc0a657a05d403785cc85fa30a99505",
            "useduuid": "3cc0a657a"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV010-嵌入式C语言",
        "date": "2025-09-20 09:17:32",
        "excerpt": "",
        "capture": "其实之前就学习过C预言了,语法什么的在嵌入式中都是一模一样的,就是有些数据类型还有相关操作可以再熟悉一下。\n 一、STM32支持的数据类型\n以STM32F103ZE这一款芯片为例,这是一块32bit的MCU,基本数据类型在此款芯片中的数据长度,以及在HAL库函数中的定义( stdint.h文件中的定义,采用C99标准)如下图:\n&lt;img src=\"./LV010-嵌入式C语言/img/image-20230418221356751.png\" alt=\"image-20230418221356751\" style=\"zoom: 80%;\" /\n 建议在开发过程中使用库定义的数据类型, 来定"
      },
      {
        "url": "/sdoc/basic/stm32basic/126b08e603011c2e21862cc6.html",
        "relativePath": "/sdoc/10-基础篇/10-STM32基础/LV020-STM32怎么开发.html",
        "frontmatter": {
          "title": "LV020-STM32怎么开发",
          "date": "2025-09-20 09:24:17",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/basic/stm32basic/126b08e603011c2e21862cc6",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "e21862cc6b54423c827258b8732bcdd8",
            "useduuid": "e21862cc6"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV020-STM32怎么开发",
        "date": "2025-09-20 09:24:17",
        "excerpt": "",
        "capture": "一、开发方式\n这篇笔记是已经对STM32有了一定的了解后才写的,其实STM32的开发大概有四种方式\n- (1)汇编,强的一批,我们可以直接使用内部寄存器和STM32的寄存器来使用汇编开发,难度可想而知。\n- (2)C语言+寄存器开发,这种相对容易,毕竟C语言我们都学过,无非是寄存器超级多。\n- (3)C语言+标准库,这个是我入门STM32的时候最先使用的库,一般都用这个。\n- (4)C语言+HAL库,HAL库配合STM32CubeMX软件使用,由于图形化的配置界面,这个HAL库据说是ST以后主推的库。\n 二、库开发与寄存器开发的关系  \n一般我们都是从学 51 单片机开发转而学习 STM32 "
      },
      {
        "url": "/sdoc/basic/stm32basic/126b08e608d01035e7260fce.html",
        "relativePath": "/sdoc/10-基础篇/10-STM32基础/LV021-认识HAL库.html",
        "frontmatter": {
          "title": "LV021-认识HAL库",
          "date": "2025-09-20 09:39:04",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/basic/stm32basic/126b08e608d01035e7260fce",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "5e7260fce3184ab293e2a218bc58687b",
            "useduuid": "5e7260fce"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV021-认识HAL库",
        "date": "2025-09-20 09:39:04",
        "excerpt": "<p>HAL,英文全称 Hardware Abstraction Layer,即硬件抽象层。 HAL 库是 ST 公司提供的外设驱动代码的驱动库,用户只需要调用库的 API 函数,便可间接配置寄存器。我们要写程序控制 STM32 芯片,其实最终就是控制它的寄存器,使之工作在我们需要的模式下, HAL 库将大部分寄存器的操作封装成了函数,我们只需要学习和掌握 HAL 库函数的结构和用法,就能方便地驱动 STM32 工作, 以节省开发时间。</p>\n<blockquote>\n<p>主要是ST官网主推的现在就是这个HAL库,而且STM32CubeMX软件生成工程也是用的这个,所以还是有必要学习一下。</p>\n</blockquote>\n",
        "capture": "HAL,英文全称 Hardware Abstraction Layer,即硬件抽象层。 HAL 库是 ST 公司提供的外设驱动代码的驱动库,用户只需要调用库的 API 函数,便可间接配置寄存器。我们要写程序控制 STM32 芯片,其实最终就是控制它的寄存器,使之工作在我们需要的模式下, HAL 库将大部分寄存器的操作封装成了函数,我们只需要学习和掌握 HAL 库函数的结构和用法,就能方便地驱动 STM32 工作, 以节省开发时间。  \n\n 一、HAL库驱动包\n 1. 下载STM32CubeF1固件\n直接来这里下载:STM32CubeF1 | Product - 意法半导体STMicroelec"
      },
      {
        "url": "/sdoc/basic/stm32basic/126b08e7828f108bc0b2f2dc.html",
        "relativePath": "/sdoc/10-基础篇/10-STM32基础/LV030-STM32程序下载.html",
        "frontmatter": {
          "title": "LV030-STM32程序下载",
          "date": "2025-09-20 19:06:07",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/basic/stm32basic/126b08e7828f108bc0b2f2dc",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "bc0b2f2dc98042cb8e44dc7aa1995faa",
            "useduuid": "bc0b2f2dc"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV030-STM32程序下载",
        "date": "2025-09-20 19:06:07",
        "excerpt": "",
        "capture": "一、创建MDK工程\n- 参考:01-开发工具/01-keil/LV002-工程创建.md\n其中MDK版本和芯片支持包的版本如下:\n- 参考:01-开发工具/02-STM32Cube/LV002-STM32CubeMX工程创建.md\nSTM32CubeMX的版本如下:\n&lt;img src=\"./LV030-STM32程序下载/img/image-20250920223052679.png\" alt=\"image-20250920223052679\" style=\"zoom:50%;\" /\n 二、生成hex文件\n首先当然是生成成果物文件啦,我们使用MDK编写完程序后,要生成一个可以下载到开发板"
      },
      {
        "url": "/sdoc/basic/stm32basic/126b08e6831f0a0031c3f015.html",
        "relativePath": "/sdoc/10-基础篇/10-STM32基础/LV040-STM32系统架构.html",
        "frontmatter": {
          "title": "LV040-STM32系统架构",
          "date": "2025-09-20 12:52:15",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/basic/stm32basic/126b08e6831f0a0031c3f015",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "031c3f0159bd41bfa7f2e89f6b50e340",
            "useduuid": "031c3f015"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV040-STM32系统架构",
        "date": "2025-09-20 12:52:15",
        "excerpt": "",
        "capture": "一、STM32简介\n 1. 回顾\n2007 年 6 月, ST 在北京发布了全球第一款基于 ARM Cortex M3 内核的 32 位通用微控制器芯片: STM32F103,以优异的性能,丰富的资源,超高的性价比,迅速占领市场,从此一鸣惊人,一发不可收拾,截止到 2020 年 6 月, STM32 累计出货量超过 45 亿颗。  \n后面学习的STM32就是用的下图中的STM32F103ZET6:\n&lt;img src=\"./LV040-STM32系统架构/img/image-20250920125818906.png\" alt=\"image-20250920125818906\" style"
      },
      {
        "url": "/sdoc/basic/stm32basic/126b08e6840f3457e72c8780.html",
        "relativePath": "/sdoc/10-基础篇/10-STM32基础/LV045-STM32存储器系统.html",
        "frontmatter": {
          "title": "LV045-STM32存储器系统",
          "date": "2025-09-20 12:54:55",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/basic/stm32basic/126b08e6840f3457e72c8780",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "7e72c87803ee4322bcd1072590f70cb3",
            "useduuid": "7e72c8780"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV045-STM32存储器系统",
        "date": "2025-09-20 12:54:55",
        "excerpt": "",
        "capture": "一、基本概念\n 1. 寄存器\n 1.1 什么是寄存器?\n寄存器是计算机和微处理器内部的一种高速、小容量的存储单元,主要用于暂存指令、数据和地址。它是CPU或其他硬件组件直接操作的对象,访问速度远高于内存(RAM)。\n可以将其理解为 “工作台”:\n- CPU内核寄存器 是工程师(CPU)手边最顺手的工具,直接参与加工。\n- 外设寄存器 是工程师与外部机器(外设)进行控制和状态交互的控制面板。\n 1.2 寄存器分类\n寄存器根据其功能和位置,可以分为两个截然不同的层级。\n 1.2.1 CPU内核寄存器 (Core Registers)\n这类寄存器位于中央处理单元(CPU)内部,是CPU核心的一部分。"
      },
      {
        "url": "/sdoc/basic/stm32basic/126b08e6a53918eab18839bd.html",
        "relativePath": "/sdoc/10-基础篇/10-STM32基础/LV050-STM32地址重映射.html",
        "frontmatter": {
          "title": "LV050-STM32地址重映射",
          "date": "2025-09-20 13:39:45",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/basic/stm32basic/126b08e6a53918eab18839bd",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "ab18839bd52b440b9ca51fa34ea3d714",
            "useduuid": "ab18839bd"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV050-STM32地址重映射",
        "date": "2025-09-20 13:39:45",
        "excerpt": "",
        "capture": "一、地址重映射\n这一部分还是以STM42F429为例。F429的中文手册可以看这里:RM0090_STM32F40xxx、STM32F41xxx、STM32F42xxx、STM32F43xx参考手册\n 1. 自举的概念\n自举(bootstrap)计算机设备使用硬件加载的程序,用于初始化足够的软件来查找并加载功能完整的操作系统。也用来描述加载自举程序的过程。什么是单片机的自举?单片机的自举就是单片机的启动。\n我们说,单片机程序基本都是从0地址出开始运行的,F429的0x00000000\\~0x001FFFFF地址映射了到什么存储器上,那么就从该存储器上读取指令,开始运行。\n至于说0x000000"
      },
      {
        "url": "/sdoc/basic/stm32setup/126b08e788e83383285742cb.html",
        "relativePath": "/sdoc/10-基础篇/20-STM32的启动/LV001-启动文件.html",
        "frontmatter": {
          "title": "LV001-启动文件",
          "date": "2025-09-20 19:22:32",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/basic/stm32setup/126b08e788e83383285742cb",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "3285742cb8d24fba98867646d8e8231b",
            "useduuid": "3285742cb"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV001-启动文件",
        "date": "2025-09-20 19:22:32",
        "excerpt": "",
        "capture": "这一节我们来分析一下MDK工程中的STM32启动文件。\n 一、启动方式\n- 参考10-基础篇/20-STM32的启动/LV005-启动过程.md和Cortex-M3 权威指南的3.8 复位序列\n在离开复位状态后,CM3做的第一件事就是读取下列两个32位整数的值:\n(1)从地址0x0000,0000处取出MSP的初始值。 \n(2)从地址0x0000,0004 处取出PC的初始值——这个值是复位向量,LSB必须是1。然后从这个值所对应的地址处取指。 \n&lt;img src=\"./LV001-启动文件/img/image-20250924071704950.png\" alt=\"image-2025"
      },
      {
        "url": "/sdoc/basic/stm32setup/126b08e78de70b59cd9ba362.html",
        "relativePath": "/sdoc/10-基础篇/20-STM32的启动/LV005-启动过程.html",
        "frontmatter": {
          "title": "LV005-启动过程",
          "date": "2025-09-20 19:35:11",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/basic/stm32setup/126b08e78de70b59cd9ba362",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "9cd9ba36208d49f99352645293a0d904",
            "useduuid": "9cd9ba362"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV005-启动过程",
        "date": "2025-09-20 19:35:11",
        "excerpt": "",
        "capture": "这一部分主要是分析STM32的启动流程,我们将会接触到内部FLASH的相关内容。\n 一、内部FLASH\n这里了解一下内部Flash的一些内容,并不涉及对内部Flash读写等相关操作。\n 1. FLASH简介\nflash是存储芯片的一种,通过特定的程序可以修改里面的数据。FLASH在电子以及半导体领域内往往表示 Flash Memory 的意思,即平时所说的“闪存”,全名叫 Flash EEPROM Memory。它结合了ROM和RAM的长处,不仅具备电子可擦除可编程(EEPROM)的性能,还可以快速读取数据(NVRAM的优势),使数据不会因为断电而丢失。\n在STM32芯片内部有一个FLASH存"
      },
      {
        "url": "/sdoc/basic/stm32setup/126b08e7afad049a561ccf1b.html",
        "relativePath": "/sdoc/10-基础篇/20-STM32的启动/LV010-在内部SRAM调试.html",
        "frontmatter": {
          "title": "LV010-在内部SRAM调试",
          "date": "2025-09-20 20:21:57",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/basic/stm32setup/126b08e7afad049a561ccf1b",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "a561ccf1b5d3443c85b0f21280803c3a",
            "useduuid": "a561ccf1b"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV010-在内部SRAM调试",
        "date": "2025-09-20 20:21:57",
        "excerpt": "",
        "capture": "一、在RAM中调试代码\n 1. 简介\n一般情况下,我们在 MDK 中编写工程应用后,调试时都是把程序下载到芯片的内部 FLASH 运行测试的,代码的 CODE 及 RW-data 的内容被写入到内部 FLASH 中存储。但在某些应用场合下却不希望或不能修改内部 FLASH 的内容,这时就可以使用 RAM 调试功能了,它的本质是把原来存储在内部 FLASH 的代码 (CODE 及 RW-data 的内容) 改为存储到 SRAM 中 (内部 SRAM 或外部 SDRAM 均可),芯片复位后从 SRAM 中加载代码并运行。 \n 2. 优缺点\n把代码下载到 RAM 中调试有如下优点 :\n(1)下载程序"
      },
      {
        "url": "/sdoc/basic/stm32interrupt/126b08f57241322fa604782d.html",
        "relativePath": "/sdoc/10-基础篇/30-STM32的中断/LV001-STM32中断简介.html",
        "frontmatter": {
          "title": "LV001-STM32中断简介",
          "date": "2025-09-21 10:39:37",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/basic/stm32interrupt/126b08f57241322fa604782d",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "fa604782d9e94117829d0f1a00c0d99d",
            "useduuid": "fa604782d"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV001-STM32中断简介",
        "date": "2025-09-21 10:39:37",
        "excerpt": "",
        "capture": "一、基本概念\n生活中,有这样一个场景,我现在正在看电视剧,然后这个时候突然有人敲门,我该怎么做?正常我们应该是暂停电视剧,然后去开门,处理有人敲门这件事,这件事处理完后,回到电视机前,继续看电视剧,这就是一个中断。\n在处理器中,中断是一个过程,即CPU在正常执行程序的过程中,遇到外部/内部的紧急事件需要处理,暂时中止当前程序的执行,转而去为处理紧急的事件,待处理完毕后再返回被打断的程序处继续往下执行。中断在计算机多任务处理,尤其是即时系统中尤为重要。比如uCOS,FreeRTOS等。\n中断存在的意义就在于中断能提高CPU的效率,同时能对突发事件做出实时处理。实现程序的并行化,实现嵌入式系统进程"
      },
      {
        "url": "/sdoc/basic/stm32clock/126b08f5d89727a6ee395582.html",
        "relativePath": "/sdoc/10-基础篇/40-STM32时钟/LV001-STM32F1时钟系统.html",
        "frontmatter": {
          "title": "LV001-STM32F1时钟系统",
          "date": "2025-09-21 13:01:35",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/basic/stm32clock/126b08f5d89727a6ee395582",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "6ee395582b8f401e806f3f6b8aac7e4a",
            "useduuid": "6ee395582"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV001-STM32F1时钟系统",
        "date": "2025-09-21 13:01:35",
        "excerpt": "",
        "capture": "一、STM32时钟树概述\n 1. 时钟系统\n时钟系统是由振荡器(信号源)、定时唤醒器、分频器等组成的电路。常用的信号源有晶体振荡器和RC振荡器。\n时钟是嵌入式系统的脉搏,处理器内核在时钟驱动下完成指令执行,状态变换等动作,外设部件在时钟的驱动下完成各种工作,比如串口数据的发送、A/D转换、定时器计数等等。因此时钟对于计算机系统是至关重要的,通常时钟系统出现问题也是致命的,比如振荡器不起振、振荡不稳、停振等。\n&lt;img src=\"./LV001-STM32F1时钟系统/img/image-20230502201120397.png\" alt=\"image-20230502201120397"
      },
      {
        "url": "/sdoc/basic/stm32clock/126b08f5dcd1392ef8558043.html",
        "relativePath": "/sdoc/10-基础篇/40-STM32时钟/LV010-STM32F1的SYSCLK.html",
        "frontmatter": {
          "title": "LV010-STM32F1的SYSCLK",
          "date": "2025-09-21 13:12:17",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/basic/stm32clock/126b08f5dcd1392ef8558043",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "ef8558043211434e9696dd7586e40951",
            "useduuid": "ef8558043"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV010-STM32F1的SYSCLK",
        "date": "2025-09-21 13:12:17",
        "excerpt": "<p>这一部分我们来详细了解一下系统时钟SYSCLK。</p>\n",
        "capture": "这一部分我们来详细了解一下系统时钟SYSCLK。\n 一、PLL 作为系统时钟源  \n在 STM32 中, 锁相环的输出也可以作为芯片系统的时钟源。 根据STM32F1的时钟结构,使用锁相环时只需要进行三个部分的配置。为了方便查看,这里直接截取STM32CubeMX中时钟树中使用 PLL 作为系统时钟源的配置部分,  \n- PLLXTPRE: HSE 分频器作为 PLL 输入 (HSE divider for PLL entry)  \n即图 11.1.2.1 在标注为①的地方, 它专门用于 HSE, ST 设计它有两种方式,并把它的控制功能放在 RCC_CFGR 寄存器中, 我们引用如图:\n从 "
      },
      {
        "url": "/sdoc/basic/stm32flash/126b09345207167f3ed95339.html",
        "relativePath": "/sdoc/10-基础篇/50-STM32内部FLASH/LV001-内部FLASH简介.html",
        "frontmatter": {
          "title": "LV001-内部FLASH简介",
          "date": "2025-09-25 22:44:55",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/basic/stm32flash/126b09345207167f3ed95339",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "f3ed95339a054335bd7861fbbdfca984",
            "useduuid": "f3ed95339"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV001-内部FLASH简介",
        "date": "2025-09-25 22:44:55",
        "excerpt": "",
        "capture": "一、内部FLASH\n这里了解一下内部Flash的一些内容,并不涉及对内部Flash读写等相关操作。\n 1. FLASH\n 简介\nflash是存储芯片的一种,通过特定的程序可以修改里面的数据。FLASH在电子以及半导体领域内往往表示 Flash Memory 的意思,即平时所说的“闪存”,全名叫 Flash EEPROM Memory。它结合了ROM和RAM的长处,不仅具备电子可擦除可编程(EEPROM)的性能,还可以快速读取数据(NVRAM的优势),使数据不会因为断电而丢失。\n在STM32芯片内部有一个FLASH存储器,它主要用于存储代码,它是一种nor flash。我们在电脑上编写好应用程序"
      },
      {
        "url": "/sdoc/basic/stm32flash/126b0934555e1e98aa9081c5.html",
        "relativePath": "/sdoc/10-基础篇/50-STM32内部FLASH/LV010-FLASH操作流程.html",
        "frontmatter": {
          "title": "LV010-FLASH操作流程",
          "date": "2025-09-25 22:53:10",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/basic/stm32flash/126b0934555e1e98aa9081c5",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "8aa9081c5bfb4658bc14302518ab96b3",
            "useduuid": "8aa9081c5"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV010-FLASH操作流程",
        "date": "2025-09-25 22:53:10",
        "excerpt": "",
        "capture": "我这里使用的是STM32CubeMX来配置生成工程,使用的就是HAL库,由于内部Flash不需要我们来做初始化,所以软件不用配置,我们直接调用相应的驱动函数即可。这些可以操作内部Flash的函数声明都存在于 以下几个文件中:\n```c\nstm32f1xx_hal_flash_ex.h\nstm32f1xx_hal_flash.h \nstm32f1xx_hal_flash_ex.c\nstm32f1xx_hal_flash.c \n```\n关于Flash的相关资料,ST官方有另外的文档,叫做STM32F10xxx闪存编程手册,英文版在这里:STM32F10xxx Flash memory microc"
      },
      {
        "url": "/sdoc/basic/stm32flash/126b0e26745a3124f27972bd.html",
        "relativePath": "/sdoc/10-基础篇/50-STM32内部FLASH/LV020-IAP编程简介.html",
        "frontmatter": {
          "title": "LV020-IAP编程简介",
          "date": "2025-10-08 20:18:18",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/basic/stm32flash/126b0e26745a3124f27972bd",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "4f27972bd3fc4860b4605d3ba9d93bb7",
            "useduuid": "4f27972bd"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV020-IAP编程简介",
        "date": "2025-10-08 20:18:18",
        "excerpt": "",
        "capture": "一、STM32编程方式\n 1. 在线编程\n 1.1 基本概念\nICP,全称为In-Circuit Programming,即在线编程。是通过 JTAG或者SWD 协议或者系统加载程序(Bootloader)下载用户应用程序到微控制器中。这种方式就是我们平时用的下载程序方式,就是通过JTAG下载器将我们通过Keil生成的hex文件下载到STM32开发板中。\n注意:这里我也不知道教程为什么叫这个,前边学习启动方式的时候也有提到过,它其实也可以称为 In System Program,也就是ISP,主要依靠ST官方在芯片内固化的BootLoader来接收来自串口的程序。\n 1.2 下载流程\n从串口下"
      },
      {
        "url": "/sdoc/basic/stm32flash/126b0e4540061175c7584cc2.html",
        "relativePath": "/sdoc/10-基础篇/50-STM32内部FLASH/LV025-IAP编程实现.html",
        "frontmatter": {
          "title": "LV025-IAP编程实现",
          "date": "2025-10-10 22:00:38",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/basic/stm32flash/126b0e4540061175c7584cc2",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "5c7584cc23ea451aaa122d51f3053c7c",
            "useduuid": "5c7584cc2"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV025-IAP编程实现",
        "date": "2025-10-10 22:00:38",
        "excerpt": "",
        "capture": "一、APP应用程序制作\nSTM32 的 APP 程序不仅可以放到 FLASH 里面运行,也可以放到 SRAM 里面运行,  我们使用的STM32F103ZET6有512KB的FLASH和64KB的SRAM,FLASH的地址为 0x0800 0000 \\~ 0x0807 FFFF,内部SRAM的地址为 0x2000 0000 \\~ 0x2000 FFFF。\n 1.APP起始地址设置\n 1.1 FLASH中运行\n- 【Options for Target】&rarr;【Target】\n&lt;img src=\"./LV025-IAP编程实现/img/image-20220925122206196."
      },
      {
        "url": "/sdoc/basic/stm32memory/126b0941431c016e4bdd2a68.html",
        "relativePath": "/sdoc/10-基础篇/60-STM32的内存/LV001-STM32内存简介.html",
        "frontmatter": {
          "title": "LV001-STM32内存简介",
          "date": "2025-09-26 07:26:04",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/basic/stm32memory/126b0941431c016e4bdd2a68",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "e4bdd2a68030419b91dea7af452724aa",
            "useduuid": "e4bdd2a68"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV001-STM32内存简介",
        "date": "2025-09-26 07:26:04",
        "excerpt": "",
        "capture": "其实断断续续的,STM32启动文件、启动方式、程序组成、map文件、sct文件、sram、内部flash都大概已经了解过了,这里进行总结,从stm32启动开始,到程序跑起来,这中间究竟是怎么个过程。\n\n 一、单片机的启动\n&lt;img src=\"./LV001-STM32内存简介/img/image-20251008084514529.png\" alt=\"image-20251008084514529\" style=\"zoom:50%;\" /&gt;\n关于存储器映像,可以看 10-基础篇/10-STM32基础/LV045-STM32存储器系统.md\n关于启动方式,我们可以看 10-基础篇/2"
      },
      {
        "url": "/sdoc/basic/stm32memory/126b0e24d5e326e3a7296e85.html",
        "relativePath": "/sdoc/10-基础篇/60-STM32的内存/LV010-内存管理.html",
        "frontmatter": {
          "title": "LV010-内存管理",
          "date": "2025-10-08 09:57:15",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/basic/stm32memory/126b0e24d5e326e3a7296e85",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "3a7296e85ae54af393dd0790947698ce",
            "useduuid": "3a7296e85"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV010-内存管理",
        "date": "2025-10-08 09:57:15",
        "excerpt": "",
        "capture": "我们学习了使用 STM32F1 驱动外部 SRAM,以扩展 STM32F1 的内存,加上STM32F1 本身自带的 64K 字节内存,我们可供使用的内存还是比较多的。如果我们所用的内存都像上一节的 testsram 那样,定义一个数组来使用,显然不是一个好办法。后来在使用Flash做Bootloader实验的时候,就无法在原有工程中定义一个55KB的数组,然后 lcd做字模缩放的时候,数组也是预先定义好的,直接就16KB,再加上一些其他的,STM32内部Flash一共就64KB,直接被我占满,sct文件中定义了SRAM的长度,导致编译都无法通过,所以动态的去管理内存就很有必要了。\n &lt;f"
      },
      {
        "url": "/sdoc/basic/stm32pwr/126b09513f17393c50358806.html",
        "relativePath": "/sdoc/10-基础篇/70-STM32电源管理/LV001-电源管理简介.html",
        "frontmatter": {
          "title": "LV001-电源管理简介",
          "date": "2025-09-27 12:01:51",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/basic/stm32pwr/126b09513f17393c50358806",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "c503588060cf485a965221f48977e91d",
            "useduuid": "c50358806"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV001-电源管理简介",
        "date": "2025-09-27 12:01:51",
        "excerpt": "",
        "capture": "一、STM32电源管理\n 1. 电源管理简介\n电源对电子设备的重要性不言而喻,它是保证系统稳定运行的基础,而保证系统能稳定运行后,又有低功耗的要求。\n在很多应用场合中都对电子设备的功耗要求非常苛刻,如某些传感器信息采集设备,仅靠小型的电池提供电源,要求工作长达数年之久,且期间不需要任何维护;由于智慧穿戴设备的小型化要求,电池体积不能太大导致容量也比较小,所以也很有必要从控制功耗入手,提高设备的续行时间。\n因此, STM32 有专门的电源管理外设监控电源并管理设备的运行模式,确保系统正常运行,并尽量降低器件的功耗。  \n 2. 电源系统结构\n为了方便进行电源管理, STM32把它的外设、内核等模"
      },
      {
        "url": "/sdoc/basic/stm32pwr/126b095140443bc89b1ebe84.html",
        "relativePath": "/sdoc/10-基础篇/70-STM32电源管理/LV010-三种模式实现.html",
        "frontmatter": {
          "title": "LV010-三种模式实现",
          "date": "2025-09-27 12:04:52",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/basic/stm32pwr/126b095140443bc89b1ebe84",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "89b1ebe841074780aa0a2abaac3caa24",
            "useduuid": "89b1ebe84"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV010-三种模式实现",
        "date": "2025-09-27 12:04:52",
        "excerpt": "",
        "capture": "一、通用配置\n 1. 硬件原理图\n硬件主要使用到了按键、 LED 以及使用串口输出调试信息。 \n&lt;img src=\"./LV010-三种模式实现/img/image-20230610191800976.png\" alt=\"image-20230610191800976\" style=\"zoom: 33%;\" /\n 2. STM32CubeMX配置\n 2.1 时钟树\n&lt;img src=\"./LV010-三种模式实现/img/image-20230610191131427.png\" alt=\"image-20230610191131427\" style=\"zoom: 25%;\" /&g"
      },
      {
        "url": "/sdoc/peripheral/gpio/126b08e802d21f6e4f658296.html",
        "relativePath": "/sdoc/20-基本外设篇/01-GPIO/LV001-STM32的GPIO简介.html",
        "frontmatter": {
          "title": "LV001-STM32的GPIO简介",
          "date": "2025-09-20 22:34:42",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/gpio/126b08e802d21f6e4f658296",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "e4f658296d8f440694a80e81f31777d4",
            "useduuid": "e4f658296"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV001-STM32的GPIO简介",
        "date": "2025-09-20 22:34:42",
        "excerpt": "",
        "capture": "一、GPIO简介\nGPIO是通用输入输出端口的简称,简单来说就是STM32可控制的引脚,STM32芯片的GPIO引脚与外部设备连接起来,从而实现与外部通讯、控制以及数据采集的功能。 STM32芯片的GPIO被分成很多组,每组有16个引脚(也有可能少于16个),如型号为STM32F103ZET6型号的芯片有GPIOA、GPIOB、GPIOC至GPIOG共7组GPIO,一共就有16x7=112个IO,该芯片一共144个引脚,其中GPIO引脚就占了一大部分,所有的GPIO引脚都有基本的输入输出功能。\n最基本的输出功能是由STM32控制引脚输出高、低电平,实现开关控制,如把GPIO引脚接入到LED灯,"
      },
      {
        "url": "/sdoc/peripheral/gpio/126b08e804d303ad5b541ecd.html",
        "relativePath": "/sdoc/20-基本外设篇/01-GPIO/LV010-输入输出模式详解.html",
        "frontmatter": {
          "title": "LV010-输入输出模式详解",
          "date": "2025-09-20 22:39:55",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/gpio/126b08e804d303ad5b541ecd",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "d5b541ecde0f4e1799e17d09e88a33fa",
            "useduuid": "d5b541ecd"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV010-输入输出模式详解",
        "date": "2025-09-20 22:39:55",
        "excerpt": "",
        "capture": "这篇笔记主要是详细学习一下GPIO输入输出各种模式(推挽、开漏、准双向端口)。\n 一、概述\n 1. IO模式说明\n概括地说,IO的功能模式大致可以分为输入、输出以及输入输出双向三大类。其中作为基本输入IO,相对比较简单,主要涉及的知识点就是高阻态;作为输出IO,相比于输入复杂一些,工作模式主要有开漏(Open Drain)模式和推挽(Push-Pull)模式,这一部分涉及的知识点比较多;对于输入输出IO,容易产生疑惑的地方是准双向和双向端口的区别。\n 2. MOS管基础\n这里学习一下P-MOS和N-MOS导通的条件,前面后边都给我整糊涂了,这里记录一下,如下图为P-MOS和N-MOS导通时的电"
      },
      {
        "url": "/sdoc/peripheral/gpio/126b08e805ca1e15c40474c4.html",
        "relativePath": "/sdoc/20-基本外设篇/01-GPIO/LV020-GPIO控制LED.html",
        "frontmatter": {
          "title": "LV020-GPIO控制LED",
          "date": "2025-09-20 22:42:02",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/gpio/126b08e805ca1e15c40474c4",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "5c40474c47fc44e49114f4489f7fb359",
            "useduuid": "5c40474c4"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV020-GPIO控制LED",
        "date": "2025-09-20 22:42:02",
        "excerpt": "",
        "capture": "一、基本步骤\n这个实例主要是通过GPIO点亮LED灯。一般步骤如下:\n- (1)使能IO口时钟。\n- (2)初始化IO口模式,包括GPIO工作模式(输出)、IO口速度。使用STM32CubeMX软件来进行图形化配置的话要注意一下上下拉的设置,不然很可能有莫名其妙的坑。\n- (3)操作IO口,输出高低电平。\n【注意】可以一次初始化一个IO组下的多个IO,前提是这些IO口的配置方式一样。\n 二、硬件原理图\n&lt;img src=\"./LV020-GPIO控制LED/img/image-20230506221050587.png\" alt=\"image-20230506221050587\" sty"
      },
      {
        "url": "/sdoc/peripheral/gpio/126b08e8078f1f2b7ad1d6a6.html",
        "relativePath": "/sdoc/20-基本外设篇/01-GPIO/LV030-按键检测.html",
        "frontmatter": {
          "title": "LV030-按键检测",
          "date": "2025-09-20 22:46:55",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/gpio/126b08e8078f1f2b7ad1d6a6",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "b7ad1d6a65df41fab1ae6bd4b2de28b9",
            "useduuid": "b7ad1d6a6"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV030-按键检测",
        "date": "2025-09-20 22:46:55",
        "excerpt": "",
        "capture": "一、基本步骤\n- (1)使能IO口时钟。\n- (2)初始化IO口模式,包括GPIO工作模式(输入)、IO口速度。\n- (3)循环读取IO电平,判断按键是否按下。\n 二、硬件原理图\n&lt;img src=\"./LV030-按键检测/img/image-20230506221837788.png\" alt=\"image-20230506221837788\" style=\"zoom:50%;\" /\n 三、STM32CubeMX配置\n&lt;img src=\"./LV030-按键检测/img/image-20230506222110861.png\" alt=\"image-20230506222110"
      },
      {
        "url": "/sdoc/peripheral/gpio/126b08f58a5c2c09e1d6100f.html",
        "relativePath": "/sdoc/20-基本外设篇/01-GPIO/LV040-外部中断.html",
        "frontmatter": {
          "title": "LV040-外部中断",
          "date": "2025-09-21 11:01:08",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/gpio/126b08f58a5c2c09e1d6100f",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "9e1d6100f7d74737974bd9674a8ba8c0",
            "useduuid": "9e1d6100f"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV040-外部中断",
        "date": "2025-09-21 11:01:08",
        "excerpt": "",
        "capture": "&gt;\n&gt;- 10-基础篇/30-STM32的中断/LV001-STM32中断简介.md\n&gt;- 10-基础篇/01-概述/LV040-CortexM3异常.md\n 一、EXTI\n 1. 简介\nSTM32的中断和中断优先级,知道了所有外设中断都由NVIC管理,比如USART、 ADC、 I2C、 SPI等。 GPIO产生的中断也不例外,但在给NVIC管理之前,还有一个EXTI( External interrupt/event controller,外部中断/事件控制器) 先处理一下 :\n&lt;img src=\"./LV040-外部中断/img/image-20230501150"
      },
      {
        "url": "/sdoc/peripheral/gpio/126b08f596281cc89a3bc4c6.html",
        "relativePath": "/sdoc/20-基本外设篇/01-GPIO/LV045-外部中断实例.html",
        "frontmatter": {
          "title": "LV045-外部中断实例",
          "date": "2025-09-21 11:31:28",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/gpio/126b08f596281cc89a3bc4c6",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "89a3bc4c6a9b4249afce4152ca5d1241",
            "useduuid": "89a3bc4c6"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV045-外部中断实例",
        "date": "2025-09-21 11:31:28",
        "excerpt": "",
        "capture": "一、硬件原理图\n&lt;img src=\"./LV045-外部中断实例/img/image-20230501153706041.png\" alt=\"image-20230501153706041\" style=\"zoom: 67%;\" /\n 二、STM32CubeMX配置\n 1. GPIO引脚配置\n在STM32CubeMX软件中,我们选择好引脚后,GPIO的功能中会自动对应好与EXIT的关系,当然,我们也可以看 STM32中文参考手册的 9.2.5 外部中断/事件线路映像一节。\n(1)PA0 所接按键按下时为高电平,默认时我们设置为下拉,也就是默认时低电平:\n&lt;img src=\"./LV"
      },
      {
        "url": "/sdoc/peripheral/uart/126b08f60edb3b6ac7962cbf.html",
        "relativePath": "/sdoc/20-基本外设篇/10-UART/LV001-串口通信简介.html",
        "frontmatter": {
          "title": "LV001-串口通信简介",
          "date": "2025-09-21 14:40:27",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/uart/126b08f60edb3b6ac7962cbf",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "ac7962cbf7d245659539f5436bb59e37",
            "useduuid": "ac7962cbf"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV001-串口通信简介",
        "date": "2025-09-21 14:40:27",
        "excerpt": "",
        "capture": "一、数据通信\n在单片机的应用中,数据通信是必不可少的一部分,比如:单片机和上位机、单片机和外围器件之间,它们都有数据通信的需求。由于设备之间的电气特性、传输速率、可靠性要求各不相同,于是就有了各种通信类型、通信协议,我们最常的有: USART、 IIC、 SPI、 CAN、 USB等。\n 1. 数据通信方式\n按数据通信方式分类,可分为串行通信和并行通信两种。串行和并行的对比如下图所示:  \n串行通信的基本特征是数据逐位顺序依次传输,优点是传输线少、 布线成本低、 灵活度高等优点,一般用于近距离人机交互, 特殊处理后也可以用于远距离, 缺点就是传输速率低。而并行通信是数据各位可以通过多条线同时传"
      },
      {
        "url": "/sdoc/peripheral/uart/126b08f6146d2d238b102738.html",
        "relativePath": "/sdoc/20-基本外设篇/10-UART/LV010-STM32的串口.html",
        "frontmatter": {
          "title": "LV010-STM32的串口",
          "date": "2025-09-21 14:54:53",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/uart/126b08f6146d2d238b102738",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "38b1027380d146cb959e571687931c97",
            "useduuid": "38b102738"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV010-STM32的串口",
        "date": "2025-09-21 14:54:53",
        "excerpt": "",
        "capture": "一、STM32的串口\n 1. 概述\n在嵌入式中,很多MCU和外设模块都集成有UART外设。 STM32F103有3个通用同步异步收发器( Universal synchronous asynchronous receiver transmitter, USART), 2个通用异步收发器( Universalasynchronous receiver transmitter, UART) 。 USART和UART的主要区别在于, USART支持同步通信, 该模式有一根时钟线提供时钟。这里需要说明一下,由于在STM中文或者是英文参考手册,相关的介绍章节主要是关于USART,但是他们都是通用的,所以"
      },
      {
        "url": "/sdoc/peripheral/uart/126b08f61664097f4a0617fc.html",
        "relativePath": "/sdoc/20-基本外设篇/10-UART/LV020-串口收发实例.html",
        "frontmatter": {
          "title": "LV020-串口收发实例",
          "date": "2025-09-21 14:59:56",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/uart/126b08f61664097f4a0617fc",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "f4a0617fc94447a8962e262d9db98842",
            "useduuid": "f4a0617fc"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV020-串口收发实例",
        "date": "2025-09-21 14:59:56",
        "excerpt": "",
        "capture": "一、串口打印实现\n说明,这里使用STM32CubeM进行配置和导出工程。\n 1. 硬件设计\n我使用的是正点原子的战舰V3,串口部分电路如下,串口 1 与 USB 串口并没有在 PCB 上连接在一起,需要通过跳线帽来连接一下。这里我们把 P4 的 RXD 和 TXD 用跳线帽与 PA9 和 PA10 连接起来。  \n&lt;img src=\"./LV020-串口收发实例/img/image-20230502122716375.png\" alt=\"image-20230502122716375\" style=\"zoom: 67%;\" /\n 2. STM32CubeMX配置\n注意这里的时钟都没配置,"
      },
      {
        "url": "/sdoc/peripheral/timer/basic/126b08f6a8e32e3427f3a2b2.html",
        "relativePath": "/sdoc/20-基本外设篇/15-定时器/LV001-基本定时器简介.html",
        "frontmatter": {
          "title": "LV001-基本定时器简介",
          "date": "2025-09-21 18:34:59",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/timer/basic/126b08f6a8e32e3427f3a2b2",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "427f3a2b26fc476299e1f6f52f2c33ad",
            "useduuid": "427f3a2b2"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV001-基本定时器简介",
        "date": "2025-09-21 18:34:59",
        "excerpt": "",
        "capture": "一、基本定时器简介\n 1. STM32的基本定时器\nSTM32F103 有两个基本定时器 TIM6 和 TIM7,它们的功能完全相同,资源是完全独立的,可以同时使用。其主要特性如下: 16 位自动重载递增计数器, 16 位可编程预分频器,预分频系数 1\\~65536,用于对计数器时钟频率进行分频,还可以触发 DAC 的同步电路,以及生成中断/DMA 请求。  \n 2. 基本定时器框图  \n&lt;img src=\"./LV001-基本定时器简介/img/image-20240114083136570.png\" alt=\"image-20240114083136570\" style=\"zoom:"
      },
      {
        "url": "/sdoc/peripheral/timer/126b08f6aa441b536809798e.html",
        "relativePath": "/sdoc/20-基本外设篇/15-定时器/LV030-通用定时器简介.html",
        "frontmatter": {
          "title": "LV030-通用定时器简介",
          "date": "2025-09-21 18:38:12",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/timer/126b08f6aa441b536809798e",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "36809798e68046309b813b9706a23f8a",
            "useduuid": "36809798e"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV030-通用定时器简介",
        "date": "2025-09-21 18:38:12",
        "excerpt": "",
        "capture": "一、STM32的通用定时器\nSTM32F103 的通用定时器有 4 个,如下所示:  \n&lt;img src=\"./LV030-通用定时器简介/img/image-20240114085044691.png\" alt=\"image-20240114085044691\" /\n该表可以参考《STM32数据手册》的2.3.17 Timers and watchdogs小节。由上表知道: 该 STM32 芯片的计数器都是 16 位的。 通用定时器和高级定时器其实也就是在基本定时器的基础上,添加了一些其他功能,如: 输入捕获、 输出比较、输出 PWM 和单脉冲模式等。 而通用定时器数量较多,其特性也有"
      },
      {
        "url": "/sdoc/peripheral/timer/126b08f6aa9f293ebbce26b2.html",
        "relativePath": "/sdoc/20-基本外设篇/15-定时器/LV035-通用定时器的中断.html",
        "frontmatter": {
          "title": "LV035-通用定时器的中断",
          "date": "2025-09-21 18:39:03",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/timer/126b08f6aa9f293ebbce26b2",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "ebbce26b2eed4f0e8e7db13c33566c30",
            "useduuid": "ebbce26b2"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV035-通用定时器的中断",
        "date": "2025-09-21 18:39:03",
        "excerpt": "",
        "capture": "一、相关寄存器\n我们来学习使用通用定时器中断,学习 TIM2/TIM3/TIM4/TIM5 的几个与定时器中断相关且重要的寄存器。主要以定时器3为例。\n 1. 控制寄存器 1(TIMx_CR1)\nTIM2/TIM3/TIM4/TIM5 的控制寄存器 1 描述如图:\n&lt;img src=\"./LV035-通用定时器的中断/img/image-20240114094348633.png\" alt=\"image-20240114094348633\" style=\"zoom:50%;\" /\n上图中只截出了中断需要用的一些位,其中:  \n位 7(APRE)用于控制自动重载寄存器是否进行缓冲,如果 A"
      },
      {
        "url": "/sdoc/peripheral/timer/126b08f6aac20ab7bc66d777.html",
        "relativePath": "/sdoc/20-基本外设篇/15-定时器/LV040-通用定时器PWM输出.html",
        "frontmatter": {
          "title": "LV040-通用定时器PWM输出",
          "date": "2025-09-21 18:39:38",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/timer/126b08f6aac20ab7bc66d777",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "7bc66d777a344e838bab8b97634f96bc",
            "useduuid": "7bc66d777"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV040-通用定时器PWM输出",
        "date": "2025-09-21 18:39:38",
        "excerpt": "",
        "capture": "一、PWM产生原理\n脉冲宽度调制(PWM),是英文“Pulse Width Modulation”的缩写,简称脉宽调制,是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术。我们可以让定时器产生PWM,在计数器频率固定时, PWM 频率或者周期由自动重载寄存器(TIMx_ARR)的值决定,其占空比由捕获/比较寄存器(TIMx_CCRx)的值决定。 PWM 产生原理示意图如下图所示:  \n&lt;img src=\"./LV040-通用定时器PWM输出/img/image-20240114095044325.png\" alt=\"image-20240114095044325\" styl"
      },
      {
        "url": "/sdoc/peripheral/timer/126b08f6ab6404f5fdfb5648.html",
        "relativePath": "/sdoc/20-基本外设篇/15-定时器/LV045-通用定时器输入捕获.html",
        "frontmatter": {
          "title": "LV045-通用定时器输入捕获",
          "date": "2025-09-21 18:41:00",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/timer/126b08f6ab6404f5fdfb5648",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "5fdfb5648d1542adb31bc692aaebfac4",
            "useduuid": "5fdfb5648"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV045-通用定时器输入捕获",
        "date": "2025-09-21 18:41:00",
        "excerpt": "",
        "capture": "一、脉宽测量基本原理\n输入捕获模式可以用来测量脉冲宽度或者测量频率。我们以测量脉宽为例,用一个简图来说明输入捕获脉宽测量原理:\n&lt;img src=\"./LV045-通用定时器输入捕获/img/image-20240114103053113.png\" alt=\"image-20240114103053113\" style=\"zoom: 33%;\" /\nt1 到 t2 的时间段,就是我们需要测量的高电平时间。测量方法如下:假如定时器工作在递增计数模式,首先设置定时器通道 x 为上升沿捕获,这样在 t1 时刻上升沿到来时,就会发生捕获事件。这里我们还会打开捕获中断,所以捕获事件发生就意味着捕获"
      },
      {
        "url": "/sdoc/peripheral/timer/126b08f6ab873bc74e57e381.html",
        "relativePath": "/sdoc/20-基本外设篇/15-定时器/LV050-通用定时器脉冲计数.html",
        "frontmatter": {
          "title": "LV050-通用定时器脉冲计数",
          "date": "2025-09-21 18:41:35",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/timer/126b08f6ab873bc74e57e381",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "74e57e3815ac43a9b2ad64b853530fde",
            "useduuid": "74e57e381"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV050-通用定时器脉冲计数",
        "date": "2025-09-21 18:41:35",
        "excerpt": "",
        "capture": "前面我们介绍了通用定时器的四类时钟源,这一节我们来学习使用通用定时器的外部时钟模式 1 这类时钟源。我们通过脉冲计数实验来学习。\n 一、需求说明\n前面的三个通用定时器实验的时钟源都是来自内部时钟 (CK_INT),在脉冲计数的使用中我们将使用外部时钟模式 1:外部输入引脚 (TIx)作为定时器的时钟源。关于这个外部输入引脚(TIx),我们使用 WK_UP 按键按下产生的高电平脉冲作为定时器的计数器时钟,每按下一次按键产生一次高电平脉冲,计数器加一。  \n 二、定时器资源说明\n&lt;img src=\"./LV050-通用定时器脉冲计数/img/image-20240114104935667.p"
      },
      {
        "url": "/sdoc/peripheral/timer/126b08f6abf821065c6674f2.html",
        "relativePath": "/sdoc/20-基本外设篇/15-定时器/LV070-高级定时器简介.html",
        "frontmatter": {
          "title": "LV070-高级定时器简介",
          "date": "2025-09-21 18:42:48",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/timer/126b08f6abf821065c6674f2",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "65c6674f24194a5c905c5931e3b1bb25",
            "useduuid": "65c6674f2"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV070-高级定时器简介",
        "date": "2025-09-21 18:42:48",
        "excerpt": "",
        "capture": "从这一节开始主要来学习高级定时器, STM32F103 有 2 个高级定时器(TIM1 和 TIM8)。将会通过四个实验来学习高级定时器的各个功能,分别是高级定时器输出指定个数 PWM 实验、高级定时器输出比较模式实验、高级定时器互补输出带死区控制实验和高级定时器 PWM 输入模式实验。  \n 一、高级定时器框图\n高级定时器的框图和通用定时器框图很类似,只是添加了其它的一些功能,如:重复计数器、带死区控制的互补输出通道、断路输入等。这些功能在高级定时器框图的位置如下:  \n&lt;img src=\"./LV070-高级定时器简介/img/image-20240114124949607.png\""
      },
      {
        "url": "/sdoc/peripheral/timer/126b08f6ac4f2bb02b42403e.html",
        "relativePath": "/sdoc/20-基本外设篇/15-定时器/LV075-高级定时器PWM输出.html",
        "frontmatter": {
          "title": "LV075-高级定时器PWM输出",
          "date": "2025-09-21 18:43:35",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/timer/126b08f6ac4f2bb02b42403e",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "02b42403e6334b1e88b3aefe535488bf",
            "useduuid": "02b42403e"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV075-高级定时器PWM输出",
        "date": "2025-09-21 18:43:35",
        "excerpt": "",
        "capture": "一、基本原理\n要实现定时器输出指定个数 PWM,只需要掌握下面几点内容:\n- 第一,定时器是如何输出 PWM 的,这部分的知识和前面是一样的。但是需要注意的是:我们需要把 MOE 位置 1,这样高级定时器的通道才能输出。\n- 第二,要清楚重复计数器特性,设置重复计数器寄存器 RCR 的值为 N,那么更新事件将在定时器发生 N+1 次上溢或下溢时发生。换句话来说就是,想要指定输出 N 个 PWM,只需要把N-1 写入 RCR 寄存器。因为在边沿对齐模式下,定时器溢出周期对应着 PWM 周期,我们只要在更新事件发生时,停止输出 PWM 就行。\n- 第三,为了保证定时器输出指定个数的 PWM 后,定"
      },
      {
        "url": "/sdoc/peripheral/timer/126b08f6aca0253099c9ba29.html",
        "relativePath": "/sdoc/20-基本外设篇/15-定时器/LV080-高级定时器输出比较模式.html",
        "frontmatter": {
          "title": "LV080-高级定时器输出比较模式",
          "date": "2025-09-21 18:44:16",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/timer/126b08f6aca0253099c9ba29",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "099c9ba29781487ab77ef3977ecd7122",
            "useduuid": "099c9ba29"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV080-高级定时器输出比较模式",
        "date": "2025-09-21 18:44:16",
        "excerpt": "",
        "capture": "一、输出比较模式输出PWM\n我们来学习使用高级定时器输出比较模式下翻转功能,通过定时器 4 个通道分别输出 4 个 50%占空比、不同相位的 PWM。\n输出比较模式下翻转功能作用是:当计数器的值等于捕获/比较寄存器影子寄存器的值时,OC1REF 发生翻转,进而控制通道输出(OCx)翻转。通过翻转功能实现输出 PWM 的具体原理如下: PWM 频率由自动重载寄存器(TIMx_ARR)的值决定,在这个过程中,只要自动重载寄存器的值不变,那么 PWM 占空比就固定为 50%。我们可以通过捕获/比较寄存器(TIMx_CCRx)的值改变 PWM 的相位。生成 PWM 的原理如图 :\n&lt;img sr"
      },
      {
        "url": "/sdoc/peripheral/timer/126b08f6ad8f2e0487d6c438.html",
        "relativePath": "/sdoc/20-基本外设篇/15-定时器/LV085-高级定时器互补输出.html",
        "frontmatter": {
          "title": "LV085-高级定时器互补输出",
          "date": "2025-09-21 18:46:55",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/timer/126b08f6ad8f2e0487d6c438",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "487d6c4384224a459898d149b83609e0",
            "useduuid": "487d6c438"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV085-高级定时器互补输出",
        "date": "2025-09-21 18:46:55",
        "excerpt": "",
        "capture": "一、基本概念\n什么是互补输出?还带死区控制?  我们来简单了解一下。关于互补输出和死区插入的更多内容可以看《STM32F10xxx 参考手册_V10(中文版) .pdf》手册的 13.3.11 小节 。\n 1. 互补输出\n&lt;img src=\"./LV085-高级定时器互补输出/img/image-20240114131925473.png\" alt=\"image-20240114131925473\" style=\"zoom:50%;\" /\n&lt;p align=\"center\"&gt;\n    图一-1 互补输出\n&lt;/p&gt;\n上图中, CH1 输出黄色的 PWM,它的互补通道"
      },
      {
        "url": "/sdoc/peripheral/timer/126b08f6ae2512a51a9eec42.html",
        "relativePath": "/sdoc/20-基本外设篇/15-定时器/LV090-高级定时器PWM输入.html",
        "frontmatter": {
          "title": "LV090-高级定时器PWM输入",
          "date": "2025-09-21 18:48:05",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/timer/126b08f6ae2512a51a9eec42",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "51a9eec423e4412c99aa8247ccd2092d",
            "useduuid": "51a9eec42"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV090-高级定时器PWM输入",
        "date": "2025-09-21 18:48:05",
        "excerpt": "",
        "capture": "本小节我们来学习使用高级定时器 PWM 输入模式, 此模式是输入捕获模式的一个特例。PWM 输入模式经常被应用于测量 PWM 脉宽和频率。 PWM 输入模式在《STM32F10xxx 参考手册_V10(中文版) .pdf》 手册 216 页有详细的文字描述。\n 一、工作原理\n&lt;img src=\"./LV090-高级定时器PWM输入/img/image-20240114135116438.png\" alt=\"image-20240114135116438\" style=\"zoom:50%;\" /\n第一,确定定时器时钟源。本实验中我们使用内部时钟(CK_INT), F1 系列高级定时器挂载在"
      },
      {
        "url": "/sdoc/peripheral/timer/126b08f7176d34627620ad1b.html",
        "relativePath": "/sdoc/20-基本外设篇/15-定时器/LV100-SysTick定时器简介.html",
        "frontmatter": {
          "title": "LV100-SysTick定时器简介",
          "date": "2025-09-21 21:17:57",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/timer/126b08f7176d34627620ad1b",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "27620ad1b6704f3ab64b6bc4d14b88f4",
            "useduuid": "27620ad1b"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV100-SysTick定时器简介",
        "date": "2025-09-21 21:17:57",
        "excerpt": "",
        "capture": "这一部分我们可以查看Cortex-M3 权威指南的 第8章NVIC与中断控制 中的 SysTick定时器  小节。\n 一、SysTick定时器简介\nSysTick定时器(又名系统滴答定时器)是存在于Cortex-M3的一个定时器,只要是ARM Cotex-M系列内核的MCU都包含这个定时器。使用内核的SysTick定时器来实现延时,可以不占用系统定时器,节约资源。由于SysTick是在CPU核内部实现的,跟MCU外设无关, 因此它的代码可以在不同厂家之间移植。  \nSysTick定时器被捆绑在NVIC中,用于产生SYSTICK异常(异常号: 15)。在以前,大多操作系统需要一个硬件定时器来产生"
      },
      {
        "url": "/sdoc/peripheral/timer/126b08f71bb31f61f9e3c819.html",
        "relativePath": "/sdoc/20-基本外设篇/15-定时器/LV105-自定义延时函数.html",
        "frontmatter": {
          "title": "LV105-自定义延时函数",
          "date": "2025-09-21 21:28:51",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/timer/126b08f71bb31f61f9e3c819",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "1f9e3c81978544cfa5b36e225514bb0d",
            "useduuid": "1f9e3c819"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV105-自定义延时函数",
        "date": "2025-09-21 21:28:51",
        "excerpt": "",
        "capture": "在20-基本外设篇/15-定时器/LV105-自定义延时函数.md中我们分析了HAL库中的HAL_Delay()函数,它是借助SysTick定时器的中断来实现的,就意味着不能在其他中断中使用这个延时函数,那么有没有其他办法实现延时?\n 一、时钟摘取法  \n我们来看一下正点原子SYSTEM目录下的delay.c中的delay_us函数。\n 1. delay_init()\n在main函数中是这样调用的:\n```c\ndelay_init(72);\n```\n这个函数的定义(删除了OS相关的内容)如下:\n```c\n/**\n * @brief     初始化延迟函数\n * @param     syscl"
      },
      {
        "url": "/sdoc/peripheral/watchdog/126b09043ae916195cb39541.html",
        "relativePath": "/sdoc/20-基本外设篇/20-看门狗/LV001-看门狗简介.html",
        "frontmatter": {
          "title": "LV001-看门狗简介",
          "date": "2025-09-22 07:28:09",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/watchdog/126b09043ae916195cb39541",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "95cb3954118d49beb6d6912a9e3cb522",
            "useduuid": "95cb39541"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV001-看门狗简介",
        "date": "2025-09-22 07:28:09",
        "excerpt": "",
        "capture": "一、看门狗简介\n 1. 简介\n在由单片机构成的微型计算机系统中,由于单片机的工作常常会受到来自外界电磁场的干扰,造成程序的跑飞,而陷入死循环,程序的正常运行被打断,由单片机控制的系统无法继续工作,会造成整个系统的陷入停滞状态,发生不可预料的后果,所以出于对单片机运行状态进行实时监测的考虑,便产生了一种专门用于监测单片机程序运行状态的模块或者芯片,俗称“看门狗”(watchdog) 。\n看门狗主要用于解决什么问题呢?在启动正常运行的时候,系统不能复位。在系统跑飞(程序异常执行)的情况,系统复位,程序重新执行。看门狗的本质也是一个定时器,在启动后,需要在一定时间内再给它一个信号,俗称“喂狗”,如果"
      },
      {
        "url": "/sdoc/peripheral/watchdog/126b09043c29000296442c6e.html",
        "relativePath": "/sdoc/20-基本外设篇/20-看门狗/LV010-看门狗使用实例.html",
        "frontmatter": {
          "title": "LV010-看门狗使用实例",
          "date": "2025-09-22 07:31:29",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/watchdog/126b09043c29000296442c6e",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "296442c6e9ba4600b39cd12075ea87af",
            "useduuid": "296442c6e"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV010-看门狗使用实例",
        "date": "2025-09-22 07:31:29",
        "excerpt": "",
        "capture": "一、独立看门狗\n 1. 硬件设计\n独立看门狗属于 STM32F1 的内部资源,只需要软件设置好即可正常工作。我们通过LED灯来指示 STM32F1 的复位情况来看指示独立看门狗的喂狗情况。\n 2. STM32CubeMX配置  \n 2.1 IWDG配置\n&lt;img src=\"./LV010-看门狗使用实例/img/image-20230513193914903.png\" alt=\"image-20230513193914903\" style=\"zoom:80%;\" /\n独立看门狗的配置时间比较简单:\n①、选择IWDG;\n②、勾选Activated,表示启用独立看门狗;\n③、看门狗的时钟分频"
      },
      {
        "url": "/sdoc/peripheral/fsmc/fsmc-basic/126b092492553b23e8704ba7.html",
        "relativePath": "/sdoc/20-基本外设篇/25-FSMC/01-FSMC基础/LV001-FSMC简介.html",
        "frontmatter": {
          "title": "LV001-FSMC简介",
          "date": "2025-09-24 19:23:41",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/fsmc/fsmc-basic/126b092492553b23e8704ba7",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "3e8704ba79214a3cbb9ab231d637b62e",
            "useduuid": "3e8704ba7"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV001-FSMC简介",
        "date": "2025-09-24 19:23:41",
        "excerpt": "",
        "capture": "这一部分我们可以参考 STM32中文参考手册的 19 灵活的静态存储器控制器(FSMC) 一节。\n 一、FSMC简介\n 1. 什么是FSMC\nFSMC,Flexible static memory controller,即灵活的静态存储控制器,能够与同步或异步存储器和 16 位 PC 存储器卡连接,STM32F1 的 FSMC 接口支持包括 SRAM、 NAND FLASH、 NOR FLASH 和 PSRAM 等存储器,但是不能驱动如SDRAM这种动态的存储器。  而在STM32F429系列的控制器中,它具有FMC外设,支持控制SDRAM存储器。\nSTM32F103ZET6的内部有64KB的"
      },
      {
        "url": "/sdoc/peripheral/fsmc/fsmc-basic/126b092499b000721416c9a0.html",
        "relativePath": "/sdoc/20-基本外设篇/25-FSMC/01-FSMC基础/LV005-存储器映射与控制器.html",
        "frontmatter": {
          "title": "LV005-存储器映射与控制器",
          "date": "2025-09-24 19:42:24",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/fsmc/fsmc-basic/126b092499b000721416c9a0",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "21416c9a03d8478188e3897a2c59aa5e",
            "useduuid": "21416c9a0"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV005-存储器映射与控制器",
        "date": "2025-09-24 19:42:24",
        "excerpt": "",
        "capture": "一、存储器映射?\n 1. 直接访问地址?\nFSMC连接好外部的存储器并初始化后,就可以直接通过访问地址来读写数据。FSMC访问存储器的方式与I2C EEPROM、SPI FLASH的不一样,后两种方式都需要控制I2C或SPI总线给存储器发送地址,然后获取数据;在程序里,这个地址和数据都需要分开使用不同的变量存储,并且访问时还需要使用代码控制发送读写命令。而使用FSMC外接存储器时,其存储单元是映射到STM32的内部寻址空间的;在程序里,定义一个指向这些地址的指针,然后就可以通过指针直接修改该存储单元的内容,FSMC外设会自动完成数据访问过程,读写命令之类的操作不需要程序控制。\n 2. FSMC"
      },
      {
        "url": "/sdoc/peripheral/fsmc/fsmc-basic/126b0924b19533081adda526.html",
        "relativePath": "/sdoc/20-基本外设篇/25-FSMC/01-FSMC基础/LV010-相关HAL库函数.html",
        "frontmatter": {
          "title": "LV010-相关HAL库函数",
          "date": "2025-09-24 20:03:41",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/fsmc/fsmc-basic/126b0924b19533081adda526",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "81adda5266e04132bfcad67ecceec69d",
            "useduuid": "81adda526"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV010-相关HAL库函数",
        "date": "2025-09-24 20:03:41",
        "excerpt": "",
        "capture": "一、库中的寄存器\n在 MDK 的寄存器定义里面,并没有定义 FSMC_BCRx、 FSMC_BTRx、 FSMC_BWTRx 等这个单独的寄存器,而是将他们进行了一些组合。FSMC_BCRx 和 FSMC_BTRx,组合成 BTCR[8]寄存器组,他们的对应关系如下:  \n```c\nBTCR[0]---\nBTCR[2]---&gt;FSMC_BCR2, BTCR[3]---&gt;FSMC_BTR2\nBTCR[4]---&gt;FSMC_BCR3, BTCR[5]---&gt;FSMC_BTR3\nBTCR[6]---&gt;FSMC_BCR4, BTCR[7]---&gt;FSMC_BTR4\n"
      },
      {
        "url": "/sdoc/peripheral/fsmc/sram/126b09248e5b007fcadf7acc.html",
        "relativePath": "/sdoc/20-基本外设篇/25-FSMC/05-外部SRAM/LV001-概述.html",
        "frontmatter": {
          "title": "LV001-概述",
          "date": "2025-09-24 19:13:23",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/fsmc/sram/126b09248e5b007fcadf7acc",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "fcadf7accc90458fa4cab2cebf963be3",
            "useduuid": "fcadf7acc"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV001-概述",
        "date": "2025-09-24 19:13:23",
        "excerpt": "",
        "capture": "一、什么是SRAM\n这个参考:10-基础篇/01-概述/LV010-常见存储器.md\n 二、为什么要扩展SRAM?\nSTM32控制器芯片内部有一定大小的SRAM及FLASH作为内存和程序存储空间,程序下载的时候是存放在内部的FLASH中的,在程序运行过程中,会有一些变量或者其他的东西存放在SRAM中运行,这就跟我们PC电脑上的内存一样。当程序较大,内存和程序空间不足时,就需要在STM32芯片的外部扩展存储器了。STM32F103ZE系列芯片可以扩展外部SRAM用作内存。\n给STM32芯片扩展内存与给PC扩展内存的原理是一样的,只是PC上一般以内存条的形式扩展,而且内存条实质是由多个内存颗粒(即"
      },
      {
        "url": "/sdoc/peripheral/fsmc/sram/126b09248ce51200a79d393f.html",
        "relativePath": "/sdoc/20-基本外设篇/25-FSMC/05-外部SRAM/LV002-XM8A51216简介.html",
        "frontmatter": {
          "title": "LV002-XM8A51216简介",
          "date": "2025-09-24 19:09:49",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/fsmc/sram/126b09248ce51200a79d393f",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "0a79d393fee944b89889bdacfda6ea95",
            "useduuid": "0a79d393f"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV002-XM8A51216简介",
        "date": "2025-09-24 19:09:49",
        "excerpt": "",
        "capture": "一、简介\nXM8A51216 是深圳星忆存储科技有限公司(星忆存储 )生产的一颗 16 位宽 512K(512*16,即 1M 字节)容量的 CMOS 静态内存芯片。我们可以在这里找到它的芯片手册:。该芯片具有如下几个特点 :\n(1)高速。 具有最高访问速度 10/12ns。\n(2)低功耗。\n(3)TTL 电平兼容。\n(4)全静态操作。不需要刷新和时钟电路。\n(5)三态输出。\n(6)字节控制功能。支持高/低字节控制。  \n 二、功能框图\n功能框图我们可以看 XM8A51216V33(8M).pdf (xingmem.com).pdf) 的 Logic Block Diagram:\n&lt;im"
      },
      {
        "url": "/sdoc/peripheral/fsmc/sram/126b09248db61d861c837fd7.html",
        "relativePath": "/sdoc/20-基本外设篇/25-FSMC/05-外部SRAM/LV005-IS62WV51216简介.html",
        "frontmatter": {
          "title": "LV005-IS62WV51216简介",
          "date": "2025-09-24 19:11:58",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/fsmc/sram/126b09248db61d861c837fd7",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "61c837fd7bf24e47b455ebbf97c03db7",
            "useduuid": "61c837fd7"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV005-IS62WV51216简介",
        "date": "2025-09-24 19:11:58",
        "excerpt": "",
        "capture": "一、简介\n IS62WV51216是ISSI(Integrated Silicon Solution, Inc)公司生产的一颗16位宽512K(512\\*16,即1M字节)容量的CMOS静态内存(SRAM)芯片。开发板上使用的完整的型号是 IS62WV51216BLL,它有以下特点:\n(1)高速。具有45ns/55ns访问速度。\n(2)低功耗。操作时:36mW;待机时:12uW。\n(3)兼容TTL电平。\n(4)全静态操作。不需要刷新和时钟电路。 \n(5)三态输出。\n(6)字节控制功能。支持高/低字节控制。\n 二、引脚说明\n&lt;img src=\"./LV005-IS62WV51216简介/i"
      },
      {
        "url": "/sdoc/peripheral/fsmc/sram/126b0924b2d20263b97733d0.html",
        "relativePath": "/sdoc/20-基本外设篇/25-FSMC/05-外部SRAM/LV015-外部SRAM读写实例.html",
        "frontmatter": {
          "title": "LV015-外部SRAM读写实例",
          "date": "2025-09-24 20:06:58",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/fsmc/sram/126b0924b2d20263b97733d0",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "3b97733d0c5f43148008ceafa2203f32",
            "useduuid": "3b97733d0"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV015-外部SRAM读写实例",
        "date": "2025-09-24 20:06:58",
        "excerpt": "",
        "capture": "一、硬件原理图\n我使用的是正点原子战舰V3的板子,硬件连接如下图:\n&lt;img src=\"./LV015-外部SRAM读写实例/img/image-20230503175021794.png\" alt=\"image-20230503175021794\" style=\"zoom:50%;\" /\n 二、STM32CubeMX配置\n这里只关心FSMC的配置,其他的可以看前边的笔记。\n 1. FSMC配置\n 1.1 模式选择\n&lt;img src=\"./LV015-外部SRAM读写实例/img/image-20230515064458738.png\" alt=\"image-20230515064"
      },
      {
        "url": "/sdoc/peripheral/i2c/126b09344c01323883ac1ab4.html",
        "relativePath": "/sdoc/20-基本外设篇/30-I2C/LV001-STM32的I2C.html",
        "frontmatter": {
          "title": "LV001-STM32的I2C",
          "date": "2025-09-25 22:29:13",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/i2c/126b09344c01323883ac1ab4",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "883ac1ab454e45c8903061818823ca7f",
            "useduuid": "883ac1ab4"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV001-STM32的I2C",
        "date": "2025-09-25 22:29:13",
        "excerpt": "",
        "capture": "一、I2C简介\n这一部分可以查看笔记60-通信专题/01-I2C协议/LV001-I2C简介.md,这篇笔记主要是关于I2C的物理层协议,读写时序以及各个信号的说明包括对各信号的模拟。\n 二、STM32的物理I2C\n 1. 物理I2C框图\n这一部分我们可以查看STM32中文参考手册的24 I2C接口一节:\n&lt;img src=\"./LV001-STM32的I2C/img/image-20230507110330416.png\" alt=\"image-20230507110330416\" style=\"zoom:50%;\" /\n 2. ①通信引脚\n通信引脚在框图中有三根:\n(1)SDA——数"
      },
      {
        "url": "/sdoc/peripheral/i2c/126b09344d8f021f00cacd6c.html",
        "relativePath": "/sdoc/20-基本外设篇/30-I2C/LV010-AT24C02简介.html",
        "frontmatter": {
          "title": "LV010-AT24C02简介",
          "date": "2025-09-25 22:33:11",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/i2c/126b09344d8f021f00cacd6c",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "f00cacd6ccbd4a459325107dc47b447a",
            "useduuid": "f00cacd6c"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV010-AT24C02简介",
        "date": "2025-09-25 22:33:11",
        "excerpt": "",
        "capture": "一、EEPROM简介\nEEPROM (Electrically Erasable Programmable read only memory)是指带电可擦可编程只读存储器。是一种掉电后数据不丢失的存储芯片。 EEPROM 可以在电脑上或专用设备上擦除已有信息,重新编程。一般用在即插即用。\n我们这一节的笔记主要是关于AT24C02的使用,它是一个串行电可擦除和可编程只读存储器(EEPROM),总容量是256(2K/8)个字节,通过IIC通信。它是 Atmel 公司的一款芯片,我们我使用的战舰V3的开发板上时AT24C02BN,我们可以在这里找到它的数据手册:AT24C01A/02/04/08/1"
      },
      {
        "url": "/sdoc/peripheral/i2c/126b09344f37186302faabd7.html",
        "relativePath": "/sdoc/20-基本外设篇/30-I2C/LV015-AT24C02使用实例.html",
        "frontmatter": {
          "title": "LV015-AT24C02使用实例",
          "date": "2025-09-25 22:37:35",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/i2c/126b09344f37186302faabd7",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "302faabd7f05494cbdcffb39c1c91164",
            "useduuid": "302faabd7"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV015-AT24C02使用实例",
        "date": "2025-09-25 22:37:35",
        "excerpt": "",
        "capture": "一、硬件原理图\n&lt;img src=\"./LV015-AT24C02使用实例/img/image-20230507133622454.png\" alt=\"image-20230507133622454\" style=\"zoom:50%;\" /\n可以看到这里的AT24C02接在了PB6和PB7,也就是I2C1上边。\n 二、物理I2C读写AT24C02\n一般步骤如下:\n(1)配置通讯使用的目标引脚为开漏模式;\n(2)使能 I2C 外设的时钟;\n(3)配置 I2C 外设的模式、地址、速率等参数并使能 I2C 外设;\n(4)编写基本 I2C 按字节收发的函数;  \n(5)编写读写 EEPROM 存"
      },
      {
        "url": "/sdoc/peripheral/spi/126b0950f4ae14889c830ae3.html",
        "relativePath": "/sdoc/20-基本外设篇/35-SPI/LV001-STM32的SPI.html",
        "frontmatter": {
          "title": "LV001-STM32的SPI",
          "date": "2025-09-27 10:11:02",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/spi/126b0950f4ae14889c830ae3",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "89c830ae3a594952be17b5abc6bbb737",
            "useduuid": "89c830ae3"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV001-STM32的SPI",
        "date": "2025-09-27 10:11:02",
        "excerpt": "",
        "capture": "一、SPI简介\n这一部分可以查看笔记《60-通信专题/30-SPI/LV001-SPI简介.md》。\n 二、STM32的SPI外设\n 1. 简介\nSTM32 的 SPI 外设可用作通讯的主机及从机,支持最高的 SCK 时钟频率为 fpclk/2 (STM32F103 型号的芯片默认 f:sub:pclk1 为 36MHz, fpclk2 为72MHz),完全支持 SPI 协议的 4 种模式,数据帧长度可设置为 8 位或 16 位,可设置数据 MSB 先行或 LSB 先行。它还支持双线全双工、双线单向以及单线模式。其中双线单向模式可以同时使用 MOSI 及 MISO 数据线向一个方向传输数据,可"
      },
      {
        "url": "/sdoc/peripheral/spi/126b0950f64a0b5a3fbcba93.html",
        "relativePath": "/sdoc/20-基本外设篇/35-SPI/LV010-W25QXXX简介.html",
        "frontmatter": {
          "title": "LV010-W25QXXX简介",
          "date": "2025-09-27 10:15:14",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/spi/126b0950f64a0b5a3fbcba93",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "a3fbcba93d1642329a28cddcb65ad8e8",
            "useduuid": "a3fbcba93"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV010-W25QXXX简介",
        "date": "2025-09-27 10:15:14",
        "excerpt": "",
        "capture": "一、简介\nEEPROM和Flash的本质上是一样的, 都用于保存数据,Flash包括MCU内部的Flash和外部扩展的Flash,我使用的开发板的W25Q128就是一个SPI接口的外部NOR Flash。从功能上, Flash通常存放运行代码,运行过程中不会修改,而EEPROM存放用户数据,可能会反复修改。 从结构上, Flash按扇区操作, EEPROM通常按字节操作。  \nW25Q128是华邦的一款SPI接口 NOR FLASH 芯片,我看我使用的开发板上使用的型号是W25Q128JV,我们可以在这里找到它的芯片手册:W25Q128JV-datasheet。\n我们看芯片手册的开头,有这么几"
      },
      {
        "url": "/sdoc/peripheral/spi/126b0950f849211ff053e7ff.html",
        "relativePath": "/sdoc/20-基本外设篇/35-SPI/LV015-SPI读写W25QXXX实例.html",
        "frontmatter": {
          "title": "LV015-SPI读写W25QXXX实例",
          "date": "2025-09-27 10:20:25",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/spi/126b0950f849211ff053e7ff",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "ff053e7ff3e247358beec3bab1ba61de",
            "useduuid": "ff053e7ff"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV015-SPI读写W25QXXX实例",
        "date": "2025-09-27 10:20:25",
        "excerpt": "",
        "capture": "一、一般步骤\n通过SPI读写外部FLASH的一般步骤如下:\n(1)初始化通讯使用的目标引脚及端口时钟;\n(2)使能 SPI 外设的时钟;\n(3)配置 SPI 外设的模式、地址、速率等参数并使能 SPI 外设;\n(4)编写基本 SPI 按字节收发的函数;\n(5)编写对 FLASH 擦除及读写操作的的函数;\n(6)编写测试程序,对读写数据进行校验。  \n 二、硬件原理图\n&lt;img src=\"./LV015-SPI读写W25QXXX实例/img/image-20230507205517724.png\" alt=\"image-20230507205517724\" style=\"zoom:50%;"
      },
      {
        "url": "/sdoc/peripheral/dma/126b0950fbc52669af52caac.html",
        "relativePath": "/sdoc/20-基本外设篇/40-DMA/LV001-DMA简介.html",
        "frontmatter": {
          "title": "LV001-DMA简介",
          "date": "2025-09-27 10:29:17",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/dma/126b0950fbc52669af52caac",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "9af52caac91c42b1b28d2e09c22f8d43",
            "useduuid": "9af52caac"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV001-DMA简介",
        "date": "2025-09-27 10:29:17",
        "excerpt": "",
        "capture": "一、DMA简介\n 1. 简介\nDMA,即 Direct Memory Access,直接存储器访问。是单片机的一个外设,它的主要功能是用来搬数据,但是不需要占用 CPU,即在传输数据的时候, CPU 可以干其他的事情,好像是多线程一样。数据传输支持从外设到存储器或者存储器到存储器,这里的存储器可以是 SRAM 或者是 FLASH。\n我们知道CPU根据代码内容执行指令,这些众多指令中,有的用于计算、有的用于控制程序、有的用于转移数据等。 其中转移数据的指令,尤其是转移大量数据,会占用大量CPU资源。  例如把外设A的数据,传给外设B,这种情况其实不需要CPU一直参与,只需在A、 B之间创建个通道"
      },
      {
        "url": "/sdoc/peripheral/dma/126b0950fc960317c7b64826.html",
        "relativePath": "/sdoc/20-基本外设篇/40-DMA/LV010-DMA使用实例.html",
        "frontmatter": {
          "title": "LV010-DMA使用实例",
          "date": "2025-09-27 10:31:26",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/dma/126b0950fc960317c7b64826",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "7c7b6482620b4698a5eac4b6e449f631",
            "useduuid": "7c7b64826"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV010-DMA使用实例",
        "date": "2025-09-27 10:31:26",
        "excerpt": "",
        "capture": "这里的实例都是通过STM32CubeMX软件进行配置。\n 一、存储器到存储器\nFLASH to SRAM,把内部FLASH的数据传输到内部的SRAM。在这里相当于将FLASH当做外设,将SRAM作为存储器,将数据从外设传输到存储器  。一般步骤如下:\n(1)使能 DMA 时钟;\n(2)配置 DMA 数据参数;\n(3)使能 DMA,进行传输;\n(4)等待传输完成,并对源数据和目标地址数据进行比较。  \n 1. STM32CubeMX配置\n&lt;img src=\"./LV010-DMA使用实例/img/image-20230505195655829.png\" alt=\"image-2023050"
      },
      {
        "url": "/sdoc/peripheral/sdio/126b0950fe110bc81c4d2fd3.html",
        "relativePath": "/sdoc/20-基本外设篇/50-SDIO/LV001-SD卡简介.html",
        "frontmatter": {
          "title": "LV001-SD卡简介",
          "date": "2025-09-27 10:35:05",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/sdio/126b0950fe110bc81c4d2fd3",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "81c4d2fd3b3049a1a63dd12e12b5a3fa",
            "useduuid": "81c4d2fd3"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV001-SD卡简介",
        "date": "2025-09-27 10:35:05",
        "excerpt": "",
        "capture": "这篇笔记主要看的是文档 Physical Layer Simplified Specification v9.0 ,但其实应该看文档Physical Layer Simplified Specification v2.0可能会更好一些,虽然他们基本是一样的(因为后边好像说是STM32做多支持到2.0版本的SD卡)。\n 一、SD卡简介\n 1. 什么是SD卡?\n SD卡(Secure Digital Memory Card)即:安全数码卡,它是在MMC的基础上发展而来,是一种基于半导体快闪记忆器的新一代记忆设备,是SD协会开发的一种专有 的非易失性 存储卡格式,用于便携式设备。由于它体积小、数据传"
      },
      {
        "url": "/sdoc/peripheral/sdio/126b0950ff013d660d235356.html",
        "relativePath": "/sdoc/20-基本外设篇/50-SDIO/LV015-SD卡的操作.html",
        "frontmatter": {
          "title": "LV015-SD卡的操作",
          "date": "2025-09-27 10:37:45",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/sdio/126b0950ff013d660d235356",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "60d235356a8a41c6b5be0b1b1d22ed03",
            "useduuid": "60d235356"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV015-SD卡的操作",
        "date": "2025-09-27 10:37:45",
        "excerpt": "",
        "capture": "一、SD卡命令\nSD命令由主机发出,以广播命令和寻址命令为例,广播命令是针对与SD主机总线连接的所有从设备发送的,寻址命令是指定某个地址设备进行命令传输。这一章的内容我们可以参考文档 Physical Layer Simplified Specification v9.0 的 4.7 Commands  章节。 \n 1. 命令格式\nSD命令格式固定为48bit,都是通过CMD线连续传输的, 数据线不参与。  \n&lt;img src=\"./LV015-SD卡的操作/img/image-20230510194931239.png\" alt=\"image-20230510194931239\" st"
      },
      {
        "url": "/sdoc/peripheral/sdio/126b0951000d2a75b964fa55.html",
        "relativePath": "/sdoc/20-基本外设篇/50-SDIO/LV020-STM32的SDIO.html",
        "frontmatter": {
          "title": "LV020-STM32的SDIO",
          "date": "2025-09-27 10:40:13",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/sdio/126b0951000d2a75b964fa55",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "5b964fa55b1c49f2849632ac18e58758",
            "useduuid": "5b964fa55"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV020-STM32的SDIO",
        "date": "2025-09-27 10:40:13",
        "excerpt": "",
        "capture": "本篇文档再看SD卡规范的时候就以文档Physical Layer Simplified Specification v2.0为主啦,因为STM32最高只支持2.0协议的SD卡。\n 一、SDIO简介\n 1. 简介\nSDIO,全称: Secure Digital Input and Output ,即安全数字输入输出接口。它是在SD卡接口的基础上发展而来,它可以兼容之前的SD卡,并可以连接SDIO接口设备,比如:蓝牙、WIFI、照相机等。\nSDIO和SD卡规范间的一个重要区别是增加了低速标准。低速卡的目标应用是以最小的硬件开支支持低速I/ O能力。低速卡支持类似调制解调器、条码扫描仪和GPS接收器"
      },
      {
        "url": "/sdoc/peripheral/sdio/126b095100d21af60c8ed17e.html",
        "relativePath": "/sdoc/20-基本外设篇/50-SDIO/LV025-读写SD卡实例.html",
        "frontmatter": {
          "title": "LV025-读写SD卡实例",
          "date": "2025-09-27 10:42:10",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/sdio/126b095100d21af60c8ed17e",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "60c8ed17e9a9490aaf1efe2014ac5b67",
            "useduuid": "60c8ed17e"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV025-读写SD卡实例",
        "date": "2025-09-27 10:42:10",
        "excerpt": "",
        "capture": "一、硬件原理图\n我使用的是正点原子战舰V3的开发板,硬件连接如下图:\n&lt;img src=\"./LV025-读写SD卡实例/img/image-20230512193905411.png\" alt=\"image-20230512193905411\" style=\"zoom:50%;\" /\n 二、STM32CubeMX配置\n像LED、按键和串口的配置这里就不再赘述,这里只写SDIO相关配置。注意,这一部分中的中断和DMA相关配置是作为笔记写在这里,后边的测试函数并没有使用DMA以及中断相关的内容,都是使用的查询方式,当使用查询方式,但是又开启了DMA以及相关中断的时候,数据读写可能会失败,这"
      },
      {
        "url": "/sdoc/peripheral/rtc/126b09511eac35920a3f191c.html",
        "relativePath": "/sdoc/20-基本外设篇/55-RTC时钟/LV001-RTC简介.html",
        "frontmatter": {
          "title": "LV001-RTC简介",
          "date": "2025-09-27 11:18:52",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/rtc/126b09511eac35920a3f191c",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "20a3f191c6054d8d9f5fd53ff7b809de",
            "useduuid": "20a3f191c"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV001-RTC简介",
        "date": "2025-09-27 11:18:52",
        "excerpt": "",
        "capture": "一、RTC简介\n实时时钟( Real Time Clock, RTC), 是一个可以不使用系统主电源供电的定时器。在系统主电源断开的情况下,依靠纽扣电池供电继续计时,可以维持几个月到几年的持续工作。在系统恢复主电源工作时, 为系统提供日历、时间信息。\n&lt;img src=\"./LV001-RTC简介/img/image-20230611142452003.png\" alt=\"image-20230611142452003\" style=\"zoom:50%;\" /\n比如台式电脑主机, 必须接电源才能工作, 此时可以正常显示当前日期、时间。电脑关机一段时间后,重新开机,系统没有联网,也能正确显"
      },
      {
        "url": "/sdoc/peripheral/usb/126b095167b12a8376012928.html",
        "relativePath": "/sdoc/20-基本外设篇/60-USB/LV001-USB简介.html",
        "frontmatter": {
          "title": "LV001-USB简介",
          "date": "2025-09-27 13:05:45",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/usb/126b095167b12a8376012928",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "3760129282bc45c68e9217915df4f46b",
            "useduuid": 376012928
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV001-USB简介",
        "date": "2025-09-27 13:05:45",
        "excerpt": "",
        "capture": "USB,即通用串行总线(Universal Serial Bus),包括 USB 协议和 USB 硬件两个方面,支持热插拔功能。现在日常生活的很多方面都离不开 USB 的应用,如充电和数据传输等场景。\nUSB 经过多次修改, 1996 年确定了初始规范版本 USB1.0,目前由非盈利组织 USBIF(Front Page | USB-IF)管理。 STM32 自带的 USB 符合USB2.0 规范,故 2.0 版本仍是学习的重点。  \n 一、USB简介\nUSB 本身的知识体系非常复杂,这里就简单介绍一下,想更系统地学习 USB 的知识可以参考《圈圈教你玩 USB》、塞普拉斯提供的《USB101"
      },
      {
        "url": "/sdoc/peripheral/usb/126b095168b91d9fad5c2a07.html",
        "relativePath": "/sdoc/20-基本外设篇/60-USB/LV010-USB读卡器实例.html",
        "frontmatter": {
          "title": "LV010-USB读卡器实例",
          "date": "2025-09-27 13:08:09",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/usb/126b095168b91d9fad5c2a07",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "fad5c2a07ce14efe93e887b24a93fb47",
            "useduuid": "fad5c2a07"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV010-USB读卡器实例",
        "date": "2025-09-27 13:08:09",
        "excerpt": "",
        "capture": "一、实验说明\n学习 USB 时我们说过 USB 有很多的设备类,这一节的 USB 读卡器实际上是一个大容量存储设备(MSC: Mass Storage Class),本实验实现过程我们需要对 MSC 类实例化,即定义这个类可以操作的功能,上层应用通过 USBD_RegisterClass 函数,将此对象注册到 usbd 内核,它主要在 usbd_msc.c 源文件中实现它的各个成员函数。\n本实验中, STM32 作为设备连接到主机,我们需要使能 USB 外设,以便主机识别到 USB设备进行扫描,同时我们需要在软件上设计好 USB 枚举所需要的一些设备描述符和注册信息,配置对应的端点以用于 US"
      },
      {
        "url": "/sdoc/advanced-chapter/file-system/126b0951040033e78ccbca10.html",
        "relativePath": "/sdoc/30-进阶篇/01-文件系统/LV001-文件系统简介.html",
        "frontmatter": {
          "title": "LV001-文件系统简介",
          "date": "2025-09-27 10:50:24",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/advanced-chapter/file-system/126b0951040033e78ccbca10",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "78ccbca106d046ecaee2de5e4c1f5766",
            "useduuid": "78ccbca10"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV001-文件系统简介",
        "date": "2025-09-27 10:50:24",
        "excerpt": "",
        "capture": "一、直接存储的弊端?\n我们前边已经学习了SPI FLASH和SD卡的读写,我们可以使用SPI FLASH直接存储数据,当需要记录字符“STM32 SPI FLASH” 时。 可以把这些文字转化成ASCII码,存储在数组中,然后调用SPI_FLASH_BufferWrite函数,把数组内容写入到SPI Flash芯片的指定地址上,在需要的时候从该地址把数据读取出来,再对读出来的数据以ASCII码的格式进行解读。  \n&lt;img src=\"./LV001-文件系统简介/img/image-20230513212219299.png\" alt=\"image-20230513212219299\" "
      },
      {
        "url": "/sdoc/advanced-chapter/file-system/126b095105912fc87e8eb3f7.html",
        "relativePath": "/sdoc/30-进阶篇/01-文件系统/LV010-FATFS简介.html",
        "frontmatter": {
          "title": "LV010-FATFS简介",
          "date": "2025-09-27 10:54:25",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/advanced-chapter/file-system/126b095105912fc87e8eb3f7",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "87e8eb3f76b14573a4c0856bf2257669",
            "useduuid": "87e8eb3f7"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV010-FATFS简介",
        "date": "2025-09-27 10:54:25",
        "excerpt": "",
        "capture": "二、 FatFs简介\n 1. FatFs是什么?\nFATFS 是一个完全免费开源的 FAT 文件系统模块,专门为小型的嵌入式系统而设计。它完全用标准 C 语言编写,所以具有良好的硬件平台独立性,可以移植到 8051、 PIC、 AVR、 SH、Z80、 H8、 ARM 等系列单片机上而只需做简单的修改。它支持 FATl2、 FATl6 和 FAT32,支持多个存储媒介;有独立的缓冲区,可以对多个文件进行读/写,并特别对 8 位单片机和 16 位单片机做了优化。\n 2. 它有什么特点\n(1)Windows 兼容的 FAT 文件系统(支持 FAT12/FAT16/FAT32)\n(2)与平台无关,移"
      },
      {
        "url": "/sdoc/advanced-chapter/file-system/126b0951078a03391bda267a.html",
        "relativePath": "/sdoc/30-进阶篇/01-文件系统/LV015-基于SPIFLASH移植FATFS.html",
        "frontmatter": {
          "title": "LV015-基于SPIFLASH移植FATFS",
          "date": "2025-09-27 10:59:30",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/advanced-chapter/file-system/126b0951078a03391bda267a",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "91bda267a4934867a0b05673bbc3ef13",
            "useduuid": "91bda267a"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV015-基于SPIFLASH移植FATFS",
        "date": "2025-09-27 10:59:30",
        "excerpt": "",
        "capture": "我们先来看一下以SPI FLASH为存储介质的FatFs文件系统的移植。\n 一、底层读写\n 1. 初始化\n首先我们需要初始化SPI FLASH,在这里我使用的是W25Q128,由于我使用的是STM32CubeMX来配置的SPI,所以初始化就如下函数所示:\n```c\n/* SPI2 init function */\nvoid MX_SPI2_Init(void);\n```\n 2. 获取SPI FLASH器件ID\n这一步其实本不是必须,但是由于代码支持了其他型号的SPI FLASH,所以这一步也就成了必要的步骤,其实也有好处,那就是可以通过读取ID来判断我们的SPI FLASH是否已经初始化完成:"
      },
      {
        "url": "/sdoc/advanced-chapter/file-system/126b09511b702501a47f120c.html",
        "relativePath": "/sdoc/30-进阶篇/01-文件系统/LV020-基于SD卡移植FATFS.html",
        "frontmatter": {
          "title": "LV015-基于SD卡移植FATFS",
          "date": "2025-09-27 11:10:24",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/advanced-chapter/file-system/126b09511b702501a47f120c",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "1a47f120cd8c41b6ab06d05da2ace352",
            "useduuid": "1a47f120c"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV015-基于SD卡移植FATFS",
        "date": "2025-09-27 11:10:24",
        "excerpt": "",
        "capture": "我们先来看一下以SD卡为存储介质的FatFs文件系统的移植。另外就是,我后来移植的过程中,发现我们在使用STM32CubeMX配置SDIO的时候不要开SDIO和DMA中断,不然SD卡读写是有问题的,但是吧,移植好文件系统后,不知道为什么,怎么都跑不起来,具体是哪的影响还不清楚,后边知道了再补充。\n 一、底层读写\n 1. 初始化\n首先我们需要初始化SD卡,这里还是使用STM32CubeMX来配置的SDIO,所以初始化就如下函数所示:\n```c\nvoid MX_SDIO_SD_Init(void);\n```\n【函数说明】这个函数是完成SDIO的初始化,也就完成了对SD卡的初始化。注意这里有两个坑,"
      },
      {
        "url": "/sdoc/advanced-chapter/file-system/126b09511d060b54b7d725e9.html",
        "relativePath": "/sdoc/30-进阶篇/01-文件系统/LV025-FATFS中自定义的一些函数.html",
        "frontmatter": {
          "title": "LV025-FATFS中自定义的一些函数",
          "date": "2025-09-27 11:14:30",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/advanced-chapter/file-system/126b09511d060b54b7d725e9",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "4b7d725e9ba54c78945189a9341e3b34",
            "useduuid": "4b7d725e9"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV025-FATFS中自定义的一些函数",
        "date": "2025-09-27 11:14:30",
        "excerpt": "",
        "capture": "最终的代码可以看这里:STM32F103-Prj: STM32学习使用(STM32CubeMX+Makefile+VScode+J-Flash) (gitee.com)\n 一、文件系统结构体定义\n为了方便管理文件系统,定义一个结构体:\n```c\ntypedef struct __ex_fatfs\n{\n    FATFS *fs[FF_VOLUMES]; // 逻辑磁盘工作区.\n    BYTE *work;  // 挂载的时候用\n    FIL *file;             // 文件1\n    FIL *ftemp;            // 文件2\n    UINT br;   "
      },
      {
        "url": "/sdoc/advanced-chapter/esp8266/126b0951502d346ca9aa7929.html",
        "relativePath": "/sdoc/30-进阶篇/02-ESP8266/LV001-ESP8266模块简介.html",
        "frontmatter": {
          "title": "LV001-ESP8266模块简介",
          "date": "2025-09-27 12:45:25",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/advanced-chapter/esp8266/126b0951502d346ca9aa7929",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "ca9aa79298244701abe40ba6e8a3afb0",
            "useduuid": "ca9aa7929"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV001-ESP8266模块简介",
        "date": "2025-09-27 12:45:25",
        "excerpt": "",
        "capture": "这一节开始,我们来学习一下正点原子的ESP8266模块。\n 一、ESP8266?\n 1. ESP8266是什么?\nESP8266其实是由乐鑫公司推出的一款WIFI芯片,而国内的一些物联网公司基于乐鑫的ESP8266芯片开发出了许多WIFI模块,这些WIFI模块大多以ESP8266作为前缀命名,因此我们通常用ESP8266指ESP8266WIFI模块。\n&lt;img src=\"./LV001-ESP8266模块简介/img/image-20240108220855988.png\" alt=\"image-20240108220855988\" /\n平常使用较多的ESP8266WIFI模块是国内安信"
      },
      {
        "url": "/sdoc/advanced-chapter/esp8266/126b095151472d621a6605a9.html",
        "relativePath": "/sdoc/30-进阶篇/02-ESP8266/LV010-AT指令.html",
        "frontmatter": {
          "title": "LV010-AT指令",
          "date": "2025-09-27 12:48:07",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/advanced-chapter/esp8266/126b095151472d621a6605a9",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "21a6605a91b34e7b87e3081f66267021",
            "useduuid": "21a6605a9"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV010-AT指令",
        "date": "2025-09-27 12:48:07",
        "excerpt": "",
        "capture": "一、ESSP-AT是什么?\nESP-AT 是乐鑫开发的可直接用于量产的物联网应用固件,旨在降低客户开发成本,快速形成产品。通过 ESP-AT 指令,您可以快速加入无线网络、连接云平台、实现数据通信以及远程控制等功能,真正的通过无线通讯实现万物互联。\nESP-AT 是基于 ESP-IDF 或 ESP8266_RTOS_SDK 实现的软件工程。它使 ESP 模组作为从机,MCU 作为主机。MCU 发送 AT 命令给 ESP 模组,控制 ESP 模组执行不同的操作,并接收 ESP 模组返回的 AT 响应。ESP-AT 提供了大量功能不同的 AT 命令,如 Wi-Fi 命令、TCP/IP 命令、Blu"
      },
      {
        "url": "/sdoc/advanced-chapter/esp8266/126b0951520814de18399844.html",
        "relativePath": "/sdoc/30-进阶篇/02-ESP8266/LV015-ESP8266固件烧录.html",
        "frontmatter": {
          "title": "LV015-ESP8266固件烧录",
          "date": "2025-09-27 12:50:00",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/advanced-chapter/esp8266/126b0951520814de18399844",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "e18399844bf344e3bb81cdc33db73395",
            "useduuid": "e18399844"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV015-ESP8266固件烧录",
        "date": "2025-09-27 12:50:00",
        "excerpt": "",
        "capture": "这里主要是学习esp8266_start_guide_1_.pdf (ai-thinker.com)这篇文档,这是安信可提供的一个ESSP8266的入门教程。这节用的图都是安信可官方的模块,我没有实际买,这里只是做个笔记学习用。\n 一、接线与模式\n 1. 典型接线图\n这里以ESP01为例:\n&lt;img src=\"./LV015-ESP8266固件烧录/img/image-20240112192441073.png\" alt=\"image-20240112192441073\" style=\"zoom:50%;\" /\n 2. 启动模式\n一般来讲是这样的:\n&lt;img src=\"./LV01"
      },
      {
        "url": "/sdoc/advanced-chapter/esp8266/126b095152fb04ead8380cb5.html",
        "relativePath": "/sdoc/30-进阶篇/02-ESP8266/LV020-ATK-MW8266模块使用实例.html",
        "frontmatter": {
          "title": "LV020-ATK-ESP8266使用实例",
          "date": "2025-09-27 12:52:43",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/advanced-chapter/esp8266/126b095152fb04ead8380cb5",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "ad8380cb587c446592ab6fa1ae7318fd",
            "useduuid": "ad8380cb5"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV020-ATK-ESP8266使用实例",
        "date": "2025-09-27 12:52:43",
        "excerpt": "",
        "capture": "一、硬件连接\nATK-MW8266D 模块可直接与正点原子战舰 STM32F103 开发板板载的 ATK 模块接口( ATK MODULE)进行连接,具体的连接关系,如下表所示:  \n&lt;img src=\"./LV020-ATK-MW8266模块使用实例/img/image-20240113094305951.png\" alt=\"image-20240113094305951\" style=\"zoom:50%;\" /\n注意,若要使用正点原子战舰 STM32F103 开发板的 ATK MODULE 接口连接ATK-MW8266D 模块,需要用跳线帽将开发板板载的 P8 接线端子的 PB10("
      },
      {
        "url": "/sdoc/advanced-chapter/ov7725/126b09516b08191a7bd0fd02.html",
        "relativePath": "/sdoc/30-进阶篇/03-OV7725/LV001-ATK-MC6625F模块简介.html",
        "frontmatter": {
          "title": "LV001-ATK-MC6625F模块简介",
          "date": "2025-09-27 13:14:00",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/advanced-chapter/ov7725/126b09516b08191a7bd0fd02",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "a7bd0fd0290345cfae6ad4ff74f043f7",
            "useduuid": "a7bd0fd02"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV001-ATK-MC6625F模块简介",
        "date": "2025-09-27 13:14:00",
        "excerpt": "",
        "capture": "一、ATK-MC6625F模块简介\nATK-MC7725F 模块一款高性能 30W 高清摄像头模块。 该模块采用 OmniVision 公司的 OV7725 摄像头传感器作为核心, OV7725 是一颗 1/4 英寸 CMOS VGA( 640*480)的图像传感器。 同时 ATK-MC7725F 模块集成了有源晶振和 FIFO 芯片, 这使得可以采用大部分的 MCU 控制该模块和读取图像数据。  \nATK-MC6625F 模块具有如下特点:\n- 集成有源晶振,无需外部提供时钟\n- 集成 FIFO 芯片,方便外部 MCU 读取图像\n- 支持 VGA、 QVGA 和从 CIF 到 40*30 的"
      },
      {
        "url": "/sdoc/advanced-chapter/ov7725/126b09516b6c2fed98855250.html",
        "relativePath": "/sdoc/30-进阶篇/03-OV7725/LV010-SCCB协议简介.html",
        "frontmatter": {
          "title": "LV010-SCCB协议简介",
          "date": "2025-09-27 13:15:00",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/advanced-chapter/ov7725/126b09516b6c2fed98855250",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "d9885525026649bdb9a31be28b79a722",
            "useduuid": "d98855250"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV010-SCCB协议简介",
        "date": "2025-09-27 13:15:00",
        "excerpt": "",
        "capture": "一、SCCB是什么?\nSCCB(Serial Camera Control Bus,串行摄像头控制总线) 是 OmniVision 开发的一种总线协议, 且广泛被应用于 OV 系列图像传感器上。\nSCCB 协议与 IIC 协议十分相似, SCCB协议由两条信号线组成: SIO_C(类似 IIC 协议的 SCL) 和 SIO_D(类似 IIC 协议的 SDA)。与 IIC 协议一样, SCCB 协议也有起始信号和停止信号, 只不过与 IIC 协议不同的是, IIC协议在传输完 1 字节数据后,需要传输的接收方发送 1 比特的确认位,而 SCCB 协议一次性要传输 9 位数据, 前 8 位为读写的"
      },
      {
        "url": "/sdoc/advanced-chapter/ov7725/126b09516bd03c413cd356e8.html",
        "relativePath": "/sdoc/30-进阶篇/03-OV7725/LV020-OV7725简介.html",
        "frontmatter": {
          "title": "LV020-OV7725简介",
          "date": "2025-09-27 13:16:00",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/advanced-chapter/ov7725/126b09516bd03c413cd356e8",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "13cd356e84f447f3b52ee1a287368dce",
            "useduuid": "13cd356e8"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV020-OV7725简介",
        "date": "2025-09-27 13:16:00",
        "excerpt": "",
        "capture": "一、OV7725简介\n 1. CCD  Sensor与CMOS Sensor\n目前市场上采用的图像传感器(Sensor)主要有CCD与CMOS这两种。CCD Sensor的技术比较成熟,一致性较好,色彩还原逼真,在尺寸方面也有一定的优势,但是其工艺复杂、成本高、功耗大,像素提高难度大,技术遇到瓶颈。而CMOS Sensor制造工艺简单,成本相对较低,功耗小,开发简便,在现阶段有较大的发展空间。相关参数的对比如表所示。\n&lt;img src=\"./LV020-OV7725简介/img/image-20240114142822888.png\" alt=\"image-202401141428228"
      },
      {
        "url": "/sdoc/advanced-chapter/display/oled/126b09516d6c2a948085516b.html",
        "relativePath": "/sdoc/30-进阶篇/04-显示屏/01-OLED/LV001-OLED简介.html",
        "frontmatter": {
          "title": "LV001-OLED简介",
          "date": "2025-09-27 13:20:12",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/advanced-chapter/display/oled/126b09516d6c2a948085516b",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "48085516b89044b2a637057cfaac3f5c",
            "useduuid": "48085516b"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV001-OLED简介",
        "date": "2025-09-27 13:20:12",
        "excerpt": "",
        "capture": "本节笔记放在这里,主要是为了学习8080时序,为后边FSMC产生8080时序做铺垫,这一部分的笔记是用GPIO模拟8080时序,这样对8080时序的认识会更深刻一些。这一节会涉及一些像素啊,显存啊什么的基本概念,笔记写在LCD屏幕学的相关笔记中了。平时我用的还是I2C或者SPI接口的OLED。\n 一、OLED简介\n 1. 简介\nOLED,即有机发光二极管(Organic Light-Emitting Diode),又称为有机电激光显示(Organic Electroluminesence Display, OELD)。OLED由于同时具备自发光,不需背光源、对比度高、厚度薄、视角广、反应速度快"
      },
      {
        "url": "/sdoc/advanced-chapter/display/oled/126b09517279099247b327e5.html",
        "relativePath": "/sdoc/30-进阶篇/04-显示屏/01-OLED/LV010-8080时序驱动OLED.html",
        "frontmatter": {
          "title": "LV010-8080时序驱动OLED",
          "date": "2025-09-27 13:33:05",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/advanced-chapter/display/oled/126b09517279099247b327e5",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "247b327e5f1747919749deb8038e066d",
            "useduuid": "247b327e5"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV010-8080时序驱动OLED",
        "date": "2025-09-27 13:33:05",
        "excerpt": "",
        "capture": "本节笔记放在这里,主要是为了学习8080时序,为后边FSMC产生8080时序做铺垫,这一部分的笔记是用GPIO模拟8080时序,这样对8080时序的认识会更深刻一些。由于我没有8080并口的OLED模块,所以还是以正点原子的OLED模块来进行时序的模拟。\n 一、硬件原理图\n&lt;img src=\"./LV010-8080时序驱动OLED/img/image-20230516234228390.png\" alt=\"image-20230516234228390\" style=\"zoom:50%;\" /\n(1)CS: OLED 片选信号,对应 PD6。\n(2)WR:向 OLED 写入数据,对应 "
      },
      {
        "url": "/sdoc/advanced-chapter/display/lcd/126b0951740b3b3a3f69973e.html",
        "relativePath": "/sdoc/30-进阶篇/04-显示屏/02-LCD/LV001-LCD简介.html",
        "frontmatter": {
          "title": "LV001-LCD简介",
          "date": "2025-09-27 13:37:07",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/advanced-chapter/display/lcd/126b0951740b3b3a3f69973e",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "a3f69973ef4142428240aba5719aeeb0",
            "useduuid": "a3f69973e"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV001-LCD简介",
        "date": "2025-09-27 13:37:07",
        "excerpt": "",
        "capture": "一、显示屏基础\n显示器属于计算机的I/O设备,即输入输出设备。它是一种将特定电子信息输出到屏幕上再反射到人眼的显示工具。常见的有CRT显示器、液晶显示器、LED点阵显示器及OLED显示器。从第一个显示装置发明至今,已经快有百年历史。 在显示屏的发展中,依次出现了三大显示技术: CRT、LCD、 OLED,如图所示。  \n&lt;img src=\"./LV001-LCD简介/img/image-20230503183212724.png\" alt=\"image-20230503183212724\" style=\"zoom:50%;\" /\n 1. CRT显示屏\n1897年, 德国电气工程师、 发明"
      },
      {
        "url": "/sdoc/advanced-chapter/display/lcd/126b0951760b03320ea5c5be.html",
        "relativePath": "/sdoc/30-进阶篇/04-显示屏/02-LCD/LV010-液晶控制原理.html",
        "frontmatter": {
          "title": "LV010-液晶控制原理",
          "date": "2025-09-27 13:42:19",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/advanced-chapter/display/lcd/126b0951760b03320ea5c5be",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "20ea5c5be93445288eac3b57c2e84f66",
            "useduuid": "20ea5c5be"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV010-液晶控制原理",
        "date": "2025-09-27 13:42:19",
        "excerpt": "",
        "capture": "一、显示屏的组成\n下图是两种适合于STM32芯片使用的显示屏,我们以它为例讲解控制液晶屏的基本原理。\n&lt;img src=\"./LV010-液晶控制原理/img/LCD007.jpeg\" alt=\"适合STM32控制的显示屏实物图\" style=\"zoom: 33%;\" /\n这个完整的显示屏由液晶显示面板、电容触摸面板以及PCB底板构成。图中的触摸面板带有触摸控制芯片,该芯片处理触摸信号并通过引出的信号线与外部器件通讯, 触摸面板中间是透明的,它贴在液晶面板上面,一起构成屏幕的主体,触摸面板与液晶面板引出的排线连接到PCB底板上,根据实际需要, PCB底板上可能会带有“液晶控制器芯片”,图"
      },
      {
        "url": "/sdoc/advanced-chapter/display/lcd/126b095237661ce983ad47b1.html",
        "relativePath": "/sdoc/30-进阶篇/04-显示屏/02-LCD/LV015-ATK-MD0280模块.html",
        "frontmatter": {
          "title": "LV015-ATK-MD0280模块",
          "date": "2025-09-27 18:37:18",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/advanced-chapter/display/lcd/126b095237661ce983ad47b1",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "983ad47b1ccb49c59396418e90556b0c",
            "useduuid": "983ad47b1"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV015-ATK-MD0280模块",
        "date": "2025-09-27 18:37:18",
        "excerpt": "",
        "capture": "一、相关资料\n这一部分主要看一下我们有哪些资料可以看,注意这里的资料都是放在本地的笔记对应的文件夹中:\n- ATK-MD0280模块用户手册:正点原子ATK-MD0280模块用户手册.pdf\n- ATK-MD0280模块裸屏图:00ATK-MD0280裸屏尺寸图(钢化玻璃TP).pdf\n- ILI9341芯片手册:01ILI9341_DS.pdf\n- 触摸驱动芯片手册:04XPT2046.pdf\n 二、2.8寸LCD模块\n我使用的是正点原子的2.8寸LCD模块,后边也是以这个模块进行学习。\n 1. 屏幕简介\nATK-MD0280-V2.4(V2.4 是版本号,下面均以 ATK-MD0280 表"
      },
      {
        "url": "/sdoc/advanced-chapter/display/lcd/126b095238ef12080fa9e2fc.html",
        "relativePath": "/sdoc/30-进阶篇/04-显示屏/02-LCD/LV016-IL9341简介.html",
        "frontmatter": {
          "title": "LV016-IL9341简介",
          "date": "2025-09-27 18:41:11",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/advanced-chapter/display/lcd/126b095238ef12080fa9e2fc",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "80fa9e2fc1c846ac9bfafe695ffc6b7d",
            "useduuid": "80fa9e2fc"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV016-IL9341简介",
        "date": "2025-09-27 18:41:11",
        "excerpt": "",
        "capture": "一、简介\nILI9341是奕力科技股份有限公司 (ilitek.com)的一款小尺寸驱动IC,我在官网没看到芯片手册,但是有些查datasheet的地方是可以查到的,这里就不写链接了。我在本地保存了一份:01ILI9341_DS.pdf\n它是一个支持分辨率为240x320点阵的a-TFT LCD 的262144(26万色)色单片驱动器。这个单片驱动器包含了一个720通道的源极驱动器(source driver),一个320通道的栅极驱动器(gate driver),自带一个172800字节(320x240x18/8)的GRAM用于显示240x320分辨率的图片数据。ILI9341提供8位/9位"
      },
      {
        "url": "/sdoc/advanced-chapter/display/lcd/126b09523c371707f0bd772f.html",
        "relativePath": "/sdoc/30-进阶篇/04-显示屏/02-LCD/LV020-FSMC模拟8080时序.html",
        "frontmatter": {
          "title": "LV020-FSMC模拟8080时序",
          "date": "2025-09-27 18:49:51",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/advanced-chapter/display/lcd/126b09523c371707f0bd772f",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "7f0bd772fcbd424ab2f5aaf94abf65ff",
            "useduuid": "7f0bd772f"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV020-FSMC模拟8080时序",
        "date": "2025-09-27 18:49:51",
        "excerpt": "",
        "capture": "一、FSMC简介\n\n 1. 简介\nILI9341的8080通讯接口时序可以由STM32使用普通I/O接口进行模拟,但这样效率太低,STM32提供了一种特别的控制方法——使用FSMC接口实现8080时序。\n&lt;img src=\"./LV020-FSMC模拟8080时序/img/image-20230519221727962.png\" alt=\"image-20230519221727962\" style=\"zoom:50%;\" /&gt;\n我们前边学习SRAM的时候了解到STM32的FSMC外设可以用于控制扩展的外部存储器,而MCU对液晶屏的操作实际上就是把显示数据写入到显存中,与控制存储器"
      },
      {
        "url": "/sdoc/advanced-chapter/display/lcd/126b095253d9037570d31d42.html",
        "relativePath": "/sdoc/30-进阶篇/04-显示屏/02-LCD/LV025-LCD显示实例.html",
        "frontmatter": {
          "title": "LV025-LCD显示实例",
          "date": "2025-09-27 19:10:01",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/advanced-chapter/display/lcd/126b095253d9037570d31d42",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "570d31d42d894e208a1fb9d5c484e257",
            "useduuid": "570d31d42"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV025-LCD显示实例",
        "date": "2025-09-27 19:10:01",
        "excerpt": "",
        "capture": "这一节的笔记主要是LCD显示相关,不关注触摸屏相关引脚。\n 一、硬件原理图\n 1. 正点原子2.8寸LCD模块\n&lt;img src=\"./LV025-LCD显示实例/img/image-20230520165852112.png\" alt=\"image-20230520165852112\" style=\"zoom:50%;\" /\n上图是正点原子的2.8寸LCD模块的原理图,说真的,没看懂,不明白为什么模块原理图上跳过了D8和D9两根线,并且标号对应的时候要D0对应DB1这样子。这个图给我看自闭了,反正是没看懂,而且教程也没见说为什么这样。索性不看了,目前就看几个关键的引脚,这几个关键的引脚"
      },
      {
        "url": "/sdoc/advanced-chapter/display/lcd/126b095255800a53f67e99cc.html",
        "relativePath": "/sdoc/30-进阶篇/04-显示屏/02-LCD/LV030-字符编码简介.html",
        "frontmatter": {
          "title": "LV030-字符编码基础",
          "date": "2025-09-27 19:14:24",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/advanced-chapter/display/lcd/126b095255800a53f67e99cc",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "3f67e99cc1774328be76eff3ae429948",
            "useduuid": "3f67e99cc"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV030-字符编码基础",
        "date": "2025-09-27 19:14:24",
        "excerpt": "",
        "capture": "一、字符编码概述\n在计算机上,我们看到的字符“ A”可能长这样 :\n&lt;img src=\"./LV030-字符编码简介/img/image-20230525215626795.png\" alt=\"image-20230525215626795\" style=\"zoom:50%;\" /\n对于同一个 TXT 文件中的内容,我们在 Notepad++ 上选择不同字体时,字符显示的形状也可能不一样。  所以 TXT 文件中保存的是字符的核心:它的编码值。而 Notepad++ 上显示时,这些字符对应什么样的形状态,这是由字符文件决定的。\n编码值,字体是两个不一样的东西,比如 A 的编码值是 0x4"
      },
      {
        "url": "/sdoc/advanced-chapter/display/lcd/126b0952576b3df0941e36ed.html",
        "relativePath": "/sdoc/30-进阶篇/04-显示屏/02-LCD/LV035-中英文的显示.html",
        "frontmatter": {
          "title": "LV035-中英文的显示",
          "date": "2025-09-27 19:19:15",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/advanced-chapter/display/lcd/126b0952576b3df0941e36ed",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "0941e36ed35b4da7a71acace5c8d2e0d",
            "useduuid": "0941e36ed"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV035-中英文的显示",
        "date": "2025-09-27 19:19:15",
        "excerpt": "",
        "capture": "一、字模\n 1. 什么是字模?\n前边我们已经了解了字符的编码,有了编码,我们就能在计算机中处理、存储字符了,但是如果计算机处理完字符后直接以编码的形式输出,人类将难以识别。因此计算机与人交互时,一般会把字符转化成人类习惯的表现形式进行输出,如显示、打印的时候。\n但是如果仅有字符编码,计算机还不知道该如何表达该字符,因为字符实际上是一个个独特的图形,计算机必须把字符编码转化成对应的字符图形人类才能正常识别,因此我们要给计算机提供字符的图形数据,这些数据就是字模,多个字模数据组成的文件也被称为字库。计算机显示字符时,根据字符编码与字模数据的映射关系找到它相应的字模数据,液晶屏根据字模数据显示该字符"
      },
      {
        "url": "/sdoc/advanced-chapter/display/lcd/126b09525e7116330989fbcc.html",
        "relativePath": "/sdoc/30-进阶篇/04-显示屏/02-LCD/LV040-实现任意大小字模.html",
        "frontmatter": {
          "title": "LV040-实现任意大小字模",
          "date": "2025-09-27 19:37:13",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/advanced-chapter/display/lcd/126b09525e7116330989fbcc",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "30989fbcc8354f6baad6455294de0120",
            "useduuid": "30989fbcc"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV040-实现任意大小字模",
        "date": "2025-09-27 19:37:13",
        "excerpt": "",
        "capture": "我们要是想显示不同大小的字符怎么办?重新生成不同大小的字模?这当然是可以的啦,但是吧,要是需要的大小有很多怎么办,比如说我们需要16x16的,32x32的,64x64的,......,这样的话,都生成数组,然后放在文件里嘛,中文也都做成字库嘛?这样其实是可以的,只要内存足够就行,但是这样其实是很浪费资源的,它们的字模都是一样的,但是仅仅就是大小不同,我们就不能用一张表,然后对字体进行缩放,得到其他大小的字模嘛?当然可以啦,下边就来学习一下这个字模缩放的流程啦。\n注意后边主要是以英文字模的缩放为例,来说明缩放的原理,我们使用的字模大小为宽16高16,对应到英文的话,就是宽8高16啦。\n 一、基本"
      },
      {
        "url": "/docs/126b096ee4d10f3bb564b607.html",
        "relativePath": "/sdoc/30-进阶篇/90-FreeRTOS/01-FreeRTOS简介/LV001-FreeRTOS简介.html",
        "frontmatter": {
          "title": "LV001-FreeRTOS简介",
          "date": "2025-09-29 06:31:21",
          "icon": "famicons:logo-markdown",
          "permalink": "/docs/126b096ee4d10f3bb564b607",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "bb564b607089439882d4247b57282de9",
            "useduuid": "bb564b607"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV001-FreeRTOS简介",
        "date": "2025-09-29 06:31:21",
        "excerpt": "",
        "capture": "一、RTOS简介\n一般嵌入式系统分为两种:前后台系统和实时系统。\n 1. 前后台系统\n早期嵌入式开发没有嵌入式操作系统的概念,直接操作裸机,在裸机上写程序,直接一个while大循环,在循环中实现功能。通常把程序分为两部分:前台系统 和 后台系统。\n简单的小系统通常是前后台系统,这样的程序包括一个死循环和若干个中断服务程序:应用程序是一个无限循环,循环中调用API函数完成所需的操作,这个大循环就叫做后台系统。中断服务程序用于处理系统的异步事件,也就是前台系统。前台是中断级,后台是任务级。\n 2. 实时系统?\n&gt; 参考:《嵌入式实时操作系统RT-Thread设计与实现》 提取码: rpxn "
      },
      {
        "url": "/sdoc/communication/i2c/126b09043f2d250b963bfb0d.html",
        "relativePath": "/sdoc/60-通信专题/01-I2C协议/LV001-I2C简介.html",
        "frontmatter": {
          "title": "LV001-I2C简介",
          "date": "2025-09-22 07:39:01",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/communication/i2c/126b09043f2d250b963bfb0d",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "b963bfb0deb74fcaa8f060b7b084d3d8",
            "useduuid": "b963bfb0d"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV001-I2C简介",
        "date": "2025-09-22 07:39:01",
        "excerpt": "",
        "capture": "一、I2C简介\n 1. I2C介绍\nI2C 就是 I2C ( Inter-Integrated Circuit )总线,是一种多主从架构串行通信总线。在1980年由 PHILIPS  (飞利浦)公司开发的两线式串行、同步、半双工、多主多从的通信总线,用于连接微控制器及其外围设备。它可以让主板、嵌入式系统或手机连接低速周边设备, 如今在嵌入式领域是非常常见。\n它是由数据线  SDA  和时钟  SCL  构成的串行总线,可发送和接收数据。在  CPU  与被控  IC  之间、  IC  与  IC  之间进行双向传送数据, 标准 I2C 总线传输速率可到 100kbps ,高速  I2C  总"
      },
      {
        "url": "/sdoc/communication/i2c/126b09043fca31869028172d.html",
        "relativePath": "/sdoc/60-通信专题/01-I2C协议/LV020-AT24C02实例分析.html",
        "frontmatter": {
          "title": "LV020-AT24C02实例分析",
          "date": "2025-09-22 07:40:58",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/communication/i2c/126b09043fca31869028172d",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "69028172daa144dcbab34851329c3348",
            "useduuid": "69028172d"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV020-AT24C02实例分析",
        "date": "2025-09-22 07:40:58",
        "excerpt": "",
        "capture": "AT24C02 是一个 256 (2K/8)个字节的 EEPROM ,它使用的接口就是 I2C ,在它的芯片手册中,给出了读写时序的时序图,我们就以此器件为例分析一下 I2C 的读写时序。\n 一、单字节写时序\n&lt;img src=\"./LV020-AT24C02实例分析/img/image-20220903160151362.png\" alt=\"image-20220903160151362\" style=\"zoom:50%;\" /\n(1)开始信号。\n(2)发送  I2C  设备地址,每个  I2C  器件都有一个设备地址,通过发送具体的设备地址来决定访问哪个  I2C  器件。这是一个 "
      },
      {
        "url": "/sdoc/communication/serial-port/126b0904421d06db7b197798.html",
        "relativePath": "/sdoc/60-通信专题/10-串口/LV001-串口通信简介.html",
        "frontmatter": {
          "title": "LV001-串口通信简介",
          "date": "2025-09-22 07:46:53",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/communication/serial-port/126b0904421d06db7b197798",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "b7b197798fd74f3fb97abd23e12eb7bc",
            "useduuid": "b7b197798"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV001-串口通信简介",
        "date": "2025-09-22 07:46:53",
        "excerpt": "",
        "capture": "一、串口通信简介\n 1. 串口简介\n串口通讯(Serial Communication)是一种设备间非常常用的串行通讯方式,因为它简单便捷,因此大部分电子设备都支持该通讯方式。串口全称叫做串行接口,通常也叫做 COM 接口,串行接口指的是数据一个一个的顺序传输,通信线路简单。使用两条线即可实现双向通信,一条用于发送,一条用于接收。串口通信距离远,但是速度相对会低,串口是一种很常用的工业接口。我们常用串行外设接口有UART和USART两种:\n- UART:UART 全称是 Universal Asynchronous Receiver/Trasmitter,也就是异步串行收发器。\n- USART"
      },
      {
        "url": "/sdoc/communication/serial-port/126b0950f26b1afbd6db3885.html",
        "relativePath": "/sdoc/60-通信专题/10-串口/LV020-RS232简介.html",
        "frontmatter": {
          "title": "LV020-RS232简介",
          "date": "2025-09-27 10:05:23",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/communication/serial-port/126b0950f26b1afbd6db3885",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "bd6db38856214d8db0d0697d94245e7d",
            "useduuid": "bd6db3885"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV020-RS232简介",
        "date": "2025-09-27 10:05:23",
        "excerpt": "",
        "capture": "一、RS232简介\nRS232是美国电子工业协会( Electronic Industries Association, EIA) 于1962年发布的串行通信接口标准,其中RS为英文“ Recomend Standard”的缩写, 中文翻译为“ 推荐标准”, 232为标识号。该标准对串行通信的物理接口及逻辑电平都做了规定, 其输出的电平称为RS232电平。早期常见于个人计算机上,是计算机通讯接口之一。现如今在个人计算机上已比较少见, 但在一些工控设备依旧比较多。\n最简单的RS232通信由三条数据线组成,即TXD、 RXD和GND。 RS232采用负逻辑电平,即-15V ~ -3V代表逻辑“ 1"
      },
      {
        "url": "/sdoc/communication/serial-port/126b0950f287303e7c68cbb5.html",
        "relativePath": "/sdoc/60-通信专题/10-串口/LV030-RS485简介.html",
        "frontmatter": {
          "title": "LV030-RS485简介",
          "date": "2025-09-27 10:05:51",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/communication/serial-port/126b0950f287303e7c68cbb5",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "e7c68cbb501d41a4be750e720e3a5e0a",
            "useduuid": "e7c68cbb5"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV030-RS485简介",
        "date": "2025-09-27 10:05:51",
        "excerpt": "",
        "capture": "一、RS485简介\nRS485是美国电子工业协会( Electronic Industries Association, EIA)于1983年发布的串行通信接口标准,经通讯工业协会( TIA)修订后命名为TIA/EIA-485-A。  485(一般称作RS485/EIA-485)是隶属于OSI模型物理层的电气特性规定为2线,半双工,多点通信的标准。用缆线两端的电压差值来表示传递信号。RS485仅仅规定了接受端和发送端的电气特性。它没有规定或推荐任何数据协议。\nRS485比RS232晚出现20多年,很多RS232的缺点,在RS485上有了改进。RS232的电平从-15V至+15V, 较高的电平值"
      },
      {
        "url": "/sdoc/communication/spi/126b0950dceb1d850b1e36d8.html",
        "relativePath": "/sdoc/60-通信专题/30-SPI/LV001-SPI简介.html",
        "frontmatter": {
          "title": "LV001-SPI简介",
          "date": "2025-09-27 09:50:19",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/communication/spi/126b0950dceb1d850b1e36d8",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "50b1e36d86eb4c0e85c11fe350fcd877",
            "useduuid": "50b1e36d8"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV001-SPI简介",
        "date": "2025-09-27 09:50:19",
        "excerpt": "",
        "capture": "一、 SPI协议简介\n 1. 什么是SPI?\nSPI 协议,Serial Peripheral Interface  ,即串行外围设备接口, 是由摩托罗拉公司提出的通讯协议( Motorola) 在1980前后提出的一种全双工同步串行通信接口,它用于MCU与各种外围设备以串行方式进行通信以交换信息,通信速度最高可达25MHz以上。SPI接口主要应用在EEPROM、 FLASH、实时时钟、网络控制器、 OLED显示驱动器、 AD转换器,数字信号处理器、数字信号解码器等与MCU间要求通讯速率较高的场合 。\nSPI,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管"
      },
      {
        "url": "/sdoc/communication/can/126b0950f34624bdf8f7407f.html",
        "relativePath": "/sdoc/60-通信专题/40-CAN/LV001-CAN通信简介.html",
        "frontmatter": {
          "title": "LV001-CAN通信简介",
          "date": "2025-09-27 10:07:42",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/communication/can/126b0950f34624bdf8f7407f",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "df8f7407fc324becb0237697f4ea8f9c",
            "useduuid": "df8f7407f"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV001-CAN通信简介",
        "date": "2025-09-27 10:07:42",
        "excerpt": "",
        "capture": "一、CAN简介\n 1. CAN\n控制器局域网( Controller Area Network, CAN) ,是由德国BOSCH(博世)公司开发, 是目前国际上应用最为广泛的现场总线之一。 其特点是可拓展性好,可承受大量数据的高速通信, 高度稳定可靠,因此常应用于汽车电子领域、工业自动化、医疗设备等高要求环境。  \n它是 ISO 国际标准化的串行通信协议。在当前的汽车产业中,出于对安全性、舒适性、方便性、低公害、低成本的要求,各种各样的电子控制系统被开发了出来。由于这些系统之间通信所用的数据类型及对可靠性的要求不尽相同,由多条总线构成的情况很多,线束的数量也随之增加。为适应“减少线束的数量”、"
      },
      {
        "url": "/sdoc/communication/126b09043e1c12685fda3fb8.html",
        "relativePath": "/sdoc/60-通信专题/LV001-通信概述.html",
        "frontmatter": {
          "title": "LV001-通信概述",
          "date": "2025-09-22 07:36:28",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/communication/126b09043e1c12685fda3fb8",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "85fda3fb8df54e90807dd03d5831b5bf",
            "useduuid": "85fda3fb8"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV001-通信概述",
        "date": "2025-09-22 07:36:28",
        "excerpt": "",
        "capture": "一、通信的两种方式\n处理器与外部设备通信,按数据传送的方式,通讯可分为串行通讯与并行通讯,但是一般我们看到的大多数都是串行通信。\n 1.串行通信\n串行通讯是指设备之间通过少量数据信号线(一般是 8 根以下), 地线以及控制信号线,按数据位形式一位一位地传输数据的通讯方式。\n- 传输原理:数据按位顺序传输\n- 优点:占用处理器引脚资源少\n- 缺点:传输速度相对较慢\n&lt;img src=\"./LV001-通信概述/img/image-20220918111415861.png\" alt=\"image-20220918111415861\" style=\"zoom:33%;\" /\n 2.并行通信\n"
      }
    ],
    "originPosts": [
      {
        "url": "/sdoc/dev-tool/keil/126b08a8b79e2ecaa634dd81.html",
        "relativePath": "/sdoc/01-开发工具/01-keil/LV001-keil简介.html",
        "frontmatter": {
          "title": "LV001-keil简介",
          "date": "2025-09-16 07:54:22",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/dev-tool/keil/126b08a8b79e2ecaa634dd81",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "aa634dd813594b2686f1ae7b5b6911d4",
            "useduuid": "aa634dd81"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV001-keil简介",
        "date": "2025-09-16 07:54:22",
        "excerpt": "",
        "capture": "一、Keil简介\n 1. 简介\nMDK 源自德国的 KEIL 公司,是 RealView MDK 的简称。在全球 MDK 被超过 10 万的嵌入式开发工程师使用。是目前针对 ARM 处理器,尤其是 Cortex M 内核处理器的最佳开发工具。  \nKeil MDK面向各种STM32微控制器产品的全面软件开发解决方案,提供创建、编译和调试嵌入式应用程序时所需的一切资源。MDK包括真正的Arm编译器和易于使用的Keil uVision IDE/调试器,可与STM32CubeMX和软件包连接。MDK还提供各种专业的中间件组件。\nMDK5 向后兼容 MDK4 和 MDK3 等,以前的项目同样可以在 M"
      },
      {
        "url": "/sdoc/dev-tool/keil/126b08aa5e32382c0ab32a01.html",
        "relativePath": "/sdoc/01-开发工具/01-keil/LV002-工程创建.html",
        "frontmatter": {
          "title": "LV002-工程创建",
          "date": "2025-09-16 18:36:02",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/dev-tool/keil/126b08aa5e32382c0ab32a01",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "c0ab32a01a744756b6c0c3e4231ed9aa",
            "useduuid": "c0ab32a01"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV002-工程创建",
        "date": "2025-09-16 18:36:02",
        "excerpt": "<p>接下来就是工程创建啦。</p>\n",
        "capture": "接下来就是工程创建啦。\n 一、库文件\n在STM32的开发中,ST(意法半导体)提供了多种软件库来帮助开发者简化开发流程,提高开发效率。其中,标准外设库(Standard Peripheral Library, SPL) 和 硬件抽象层库(Hardware Abstraction Layer Library, HAL) 是最为经典和常用的两种。\n 1. 标准外设库 (Standard Peripheral Library, SPL)\n标准库,也称为SPL,是ST早期为STM32F1, F2, F4, L1等系列提供的库函数。它是对STM32芯片底层寄存器操作的一种封装,提供了一组C语言API用于"
      },
      {
        "url": "/sdoc/dev-tool/keil/126b08e6a9c4187125e57a5f.html",
        "relativePath": "/sdoc/01-开发工具/01-keil/LV010-程序与编译.html",
        "frontmatter": {
          "title": "LV010-程序与编译",
          "date": "2025-09-20 13:51:08",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/dev-tool/keil/126b08e6a9c4187125e57a5f",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "125e57a5ff854ebaa58b6fff51b99a11",
            "useduuid": "125e57a5f"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV010-程序与编译",
        "date": "2025-09-20 13:51:08",
        "excerpt": "",
        "capture": "一、编译过程\n 1. 编译过程简介\n我们简单了解下MDK的编译过程,它与其它编译器的工作过程是类似的:\n&lt;img src=\"./LV010-程序与编译/img/MDK002.jpg\" alt=\"MDK编译过程\" style=\"zoom: 67%;\" /\n(1) 编译,MDK软件使用的编译器是 armcc 和 armasm , 它们根据每个C/C++和汇编源文件编译成对应的以“ .o ”为后缀名的对象文件(Object Code,也称目标文件), 其内容主要是从源文件编译得到的机器码,包含了代码、数据以及调试使用的信息;\n(2) 链接, 链接器 armlink 把各个 .o 文件及库文件链"
      },
      {
        "url": "/sdoc/dev-tool/keil/126b0913857d3670d6f0eef1.html",
        "relativePath": "/sdoc/01-开发工具/01-keil/LV015-MDK工程文件简介.html",
        "frontmatter": {
          "title": "LV015-MDK工程文件简介",
          "date": "2025-09-23 07:49:41",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/dev-tool/keil/126b0913857d3670d6f0eef1",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "0d6f0eef153042fc862dc752cb0e3c2d",
            "useduuid": "0d6f0eef1"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV015-MDK工程文件简介",
        "date": "2025-09-23 07:49:41",
        "excerpt": "",
        "capture": "本篇笔记主要是参考的野火的文档。使用的工程呢可以去这里下载:ebf_stm32f103_badao_std_code: 野火STM32F103 霸道开发板 标准库教程配套代码 (gitee.com)\n\n 一、MDK工程文件类型\n 1. Project工程文件\n&lt;table&gt;\n    &lt;tbody&gt;\n        &lt;tr&gt;&lt;td align=\"left\"&gt;后缀&lt;/td&gt;&lt;td align=\"left\"&gt;说明&lt;/td&gt;&lt;/tr&gt;\n        &lt;tr&gt;&lt;td align=\"left"
      },
      {
        "url": "/sdoc/dev-tool/keil/126b091384f9220a0ff9cf1d.html",
        "relativePath": "/sdoc/01-开发工具/01-keil/LV016-Output目录文件.html",
        "frontmatter": {
          "title": "LV016-Output目录文件",
          "date": "2025-09-23 07:48:09",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/dev-tool/keil/126b091384f9220a0ff9cf1d",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "a0ff9cf1dff34a1790997424e34bac30",
            "useduuid": "a0ff9cf1d"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV016-Output目录文件",
        "date": "2025-09-23 07:48:09",
        "excerpt": "",
        "capture": "本篇笔记主要是参考的野火的文档。使用的工程呢可以去这里下载:ebf_stm32f103_badao_std_code: 野火STM32F103 霸道开发板 标准库教程配套代码 (gitee.com)\n\n 一、Output目录位置选择\nOutput目录是存放输出文件以及一些中间文件的目录,这个目录是可以配置的:\n&lt;img src=\"./LV016-Output目录文件/img/image-20230529200416215-1758358981825-2.png\" alt=\"image-20230529200416215\" style=\"zoom: 67%;\" /&gt;\n点击 MDK 中"
      },
      {
        "url": "/sdoc/dev-tool/keil/126b0913865605b5493dc70e.html",
        "relativePath": "/sdoc/01-开发工具/01-keil/LV017-Listing目录文件.html",
        "frontmatter": {
          "title": "LV017-Listing目录文件",
          "date": "2025-09-23 07:51:58",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/dev-tool/keil/126b0913865605b5493dc70e",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "5493dc70ee6849e0b32a91f39d8e2488",
            "useduuid": "5493dc70e"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV017-Listing目录文件",
        "date": "2025-09-23 07:51:58",
        "excerpt": "",
        "capture": "本篇笔记主要是参考的野火的文档。使用的工程呢可以去这里下载:ebf_stm32f103_badao_std_code: 野火STM32F103 霸道开发板 标准库教程配套代码 (gitee.com)\n\n在Listing目录下包含了.map及.lst文件,它们都是文本格式的,可使用Windows的记事本软件打开。其中lst文件仅包含了一些汇编符号的链接信息,这些文件中重点是map文件。\n 一、Listing目录位置选择\n这里存放的都是链接器链接过程中用到的或者生成的文件,我们也是可以自行配置目录位置的:\n&lt;img src=\"./LV017-Listing目录文件/img/image-202"
      },
      {
        "url": "/sdoc/dev-tool/keil/126b08e6cfb5032dbc05b46a.html",
        "relativePath": "/sdoc/01-开发工具/01-keil/LV020-SCT分散加载文件.html",
        "frontmatter": {
          "title": "LV020-SCT分散加载文件",
          "date": "2025-09-20 14:48:21",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/dev-tool/keil/126b08e6cfb5032dbc05b46a",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "dbc05b46abca47d8a176762f5148dc50",
            "useduuid": "dbc05b46a"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV020-SCT分散加载文件",
        "date": "2025-09-20 14:48:21",
        "excerpt": "",
        "capture": "这里继续学习MDK的工程文件`*.sct`,使用的工程呢可以去这里下载:ebf_stm32f103_badao_std_code: 野火STM32F103 霸道开发板 标准库教程配套代码 (gitee.com)\n\n 一、sct分散加载文件简介\n当工程按默认配置构建时,MDK会根据我们选择的芯片型号,获知芯片的内部FLASH及内部SRAM存储器概况,生成一个以工程名命名的后缀为\\*.sct的分散加载文件(Linker Control File,scatter loading),链接器根据该文件的配置分配各个节区地址,生成分散加载代码,因此我们通过修改该文件可以定制具体节区的存储位置。例如,我们可"
      },
      {
        "url": "/sdoc/dev-tool/keil/126b08e6d335070a7fd1934d.html",
        "relativePath": "/sdoc/01-开发工具/01-keil/LV025-SCT文件应用.html",
        "frontmatter": {
          "title": "LV025-SCT文件应用",
          "date": "2025-09-20 14:57:17",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/dev-tool/keil/126b08e6d335070a7fd1934d",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "a7fd1934dbcb4eef93f57d3dce4e0059",
            "useduuid": "a7fd1934d"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV025-SCT文件应用",
        "date": "2025-09-20 14:57:17",
        "excerpt": "",
        "capture": "这一篇笔记主要是通过SCT文件来实现变量的分配位置,这里需要后边FSMC驱动SRAM的知识。由于内存管理对应用程序非常重要,若修改 sct 文件,不使用默认配置,对工程影响非常大,容易导致出错,所以我们这里也是跟着教程做了两个实验,来学习 sct 文件的应用细节。\n\n 一、自定义SCT文件\n注意这里我们要根据上一节笔记,取消MDK使用默认的SCT文件。\n&lt;img src=\"./LV025-SCT文件应用/img/image-20230529215228408.png\" alt=\"image-20230529215228408\" style=\"zoom: 50%;\" /&gt;\n在 MDK"
      },
      {
        "url": "/sdoc/dev-tool/keil/126b08e76d70287e70afead6.html",
        "relativePath": "/sdoc/01-开发工具/01-keil/LV040-在线调试.html",
        "frontmatter": {
          "title": "LV040-在线调试",
          "date": "2025-09-20 18:52:00",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/dev-tool/keil/126b08e76d70287e70afead6",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "e70afead6dd14692ad3b3749eb2cad4d",
            "useduuid": "e70afead6"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV040-在线调试",
        "date": "2025-09-20 18:52:00",
        "excerpt": "",
        "capture": "有了J-Link或者ST-Link,我们就可以在线调试代码,这里以我我使用的J-Link为例,简单介绍一下界面,后边的功能就自己摸索吧。\n 一、连接与配置\n最开始肯定是连接好J-Link、电脑和开发板啦,然后就是MDK工程的配置,这个可以看前边J-Link的使用。\n- 01-开发工具/10-下载与调试/LV002-JLink怎么使用.md\n- 01-开发工具/10-下载与调试/LV015-STLink怎么使用.md\n 二、开始在线调试\n 1. 启动\n我们可以点击工具栏的这个按钮进入调试,或者就是从菜单栏【Debug】&rarr;【Start/Stop Debug Session】启动:\n&lt"
      },
      {
        "url": "/sdoc/dev-tool/stm32cube/126b08aa58bc0838d250f7bd.html",
        "relativePath": "/sdoc/01-开发工具/02-STM32Cube/LV001-STM32CubeMX简介.html",
        "frontmatter": {
          "title": "LV001-STM32CubeMX简介",
          "date": "2025-09-16 18:22:04",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/dev-tool/stm32cube/126b08aa58bc0838d250f7bd",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "8d250f7bdb9d4b4fb822b135635cdf20",
            "useduuid": "8d250f7bd"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV001-STM32CubeMX简介",
        "date": "2025-09-16 18:22:04",
        "excerpt": "",
        "capture": "一、STM32CubeMX\n 1. 简介\n&lt;img src=\"./LV001-STM32CubeMX简介/img/image-20230419230755825.png\" alt=\"image-20230419230755825\" style=\"zoom:50%;\" /\nSTM32CubeMX是ST公司出品的一款C代码生成器软件,它是一种图形工具,通过分步过程可以非常轻松地配置STM32微控制器和微处理器,以及为Arm® Cortex®-M内核或面向Arm® Cortex®-A内核的特定Linux®设备树生成相应的初始化C代码。具有以下功能:\n- 直观的STM32微控制器和微处理器选择\n"
      },
      {
        "url": "/sdoc/dev-tool/stm32cube/126b08aaf7c11b6e19f8d60a.html",
        "relativePath": "/sdoc/01-开发工具/02-STM32Cube/LV002-STM32CubeMX工程创建.html",
        "frontmatter": {
          "title": "LV002-STM32CubeMX工程创建",
          "date": "2025-09-16 22:29:13",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/dev-tool/stm32cube/126b08aaf7c11b6e19f8d60a",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "e19f8d60a0f64d51a22bc5a8a04bf26f",
            "useduuid": "e19f8d60a"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV002-STM32CubeMX工程创建",
        "date": "2025-09-16 22:29:13",
        "excerpt": "",
        "capture": "一、工程创建\n 1. 芯片型号选择\n这个创建工程就比较简单了:\n- 【File】&rarr;【New Project】\n&lt;img src=\"./LV002-STM32CubeMX工程创建/img/image-20230419232250397.png\" alt=\"image-20230419232250397\"  /\n- 【选择芯片型号】&rarr;【Start Project】\n&lt;img src=\"./LV002-STM32CubeMX工程创建/img/image-20230419232522160.png\" alt=\"image-20230419232522160\"  /&gt"
      },
      {
        "url": "/sdoc/dev-tool/stm32cube/126b08e6edcf211c7df7916d.html",
        "relativePath": "/sdoc/01-开发工具/02-STM32Cube/LV010-Makefile管理工程.html",
        "frontmatter": {
          "title": "LV010-Makefile管理工程",
          "date": "2025-09-20 15:25:27",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/dev-tool/stm32cube/126b08e6edcf211c7df7916d",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "c7df7916d51c40f295ec8bdf0e20a228",
            "useduuid": "c7df7916d"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV010-Makefile管理工程",
        "date": "2025-09-20 15:25:27",
        "excerpt": "",
        "capture": "一、STM32CubeMX生成工程\n 1. 生成Makefile\n前边我们已经熟悉了一下STM32CubeMX软件的使用方法,以及创建和导出MDK工程的过程,接下来我们创建一个含有Makefile文件的工程。\n- (1)【File】&rarr;【New Project】\n&lt;img src=\"./LV010-Makefile管理工程/img/image-20230419232250397.png\" alt=\"image-20230419232250397\"  /\n- (2)【选择芯片型号】&rarr;【Start Project】\n&lt;img src=\"./LV010-Makefile"
      },
      {
        "url": "/sdoc/dev-tool/stm32cube/126b08e6ef7626b7c442bfe2.html",
        "relativePath": "/sdoc/01-开发工具/02-STM32Cube/LV012-Makefile文件分析.html",
        "frontmatter": {
          "title": "LV012-Makefile文件分析",
          "date": "2025-09-20 15:29:50",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/dev-tool/stm32cube/126b08e6ef7626b7c442bfe2",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "7c442bfe2f7348608819bf852cebb54e",
            "useduuid": "7c442bfe2"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV012-Makefile文件分析",
        "date": "2025-09-20 15:29:50",
        "excerpt": "",
        "capture": "这篇笔记主要是STM32CubeMX软件生成的Makefile文件的学习笔记。这篇笔记按照顺序从上到下分析Makefile文件。\n 一、完整的Makefile文件\n```makefile\n File automatically-generated by tool: [projectgenerator] version: [3.19.2] date: [Thu Apr 27 16:55:10 CST 2023] \n ------------------------------------------------\n Generic Makefile (based on gcc)\n ChangeLo"
      },
      {
        "url": "/sdoc/dev-tool/keil/126b08e6f2e40a653e71bc02.html",
        "relativePath": "/sdoc/01-开发工具/02-STM32Cube/LV015-LD链接脚本.html",
        "frontmatter": {
          "title": "LV040-LD链接脚本",
          "date": "2025-09-20 15:38:28",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/dev-tool/keil/126b08e6f2e40a653e71bc02",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "53e71bc02dd346aeac5749700b205317",
            "useduuid": "53e71bc02"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV040-LD链接脚本",
        "date": "2025-09-20 15:38:28",
        "excerpt": "<p>这篇笔记主要是STM32CubeMX软件生成的STM32F103ZETx_FLASH.ld链接文件的学习笔记。这篇笔记按照顺序从上到下分析STM32F103ZETx_FLASH.ld文件。关于GNU链接脚本的详细语法我们可以参考这里:<a href=\"https://sourceware.org/binutils/docs/\" target=\"_blank\" rel=\"noreferrer\">Documentation for binutils 2.40 (sourceware.org)</a>,这里好像还有在线的文档。**【注意】**生成Makefile文件的话,链接脚本是自动生成的,并且每一次重新生成的时候,<strong>链接脚本将会重新生成</strong>,也就是说,若是我们修改了链接脚本内容的话,只要我们通过STM32CubeMX更新工程,我们修改的部分都会被删除。</p>\n",
        "capture": "这篇笔记主要是STM32CubeMX软件生成的STM32F103ZETx_FLASH.ld链接文件的学习笔记。这篇笔记按照顺序从上到下分析STM32F103ZETx_FLASH.ld文件。关于GNU链接脚本的详细语法我们可以参考这里:Documentation for binutils 2.40 (sourceware.org),这里好像还有在线的文档。【注意】生成Makefile文件的话,链接脚本是自动生成的,并且每一次重新生成的时候,链接脚本将会重新生成,也就是说,若是我们修改了链接脚本内容的话,只要我们通过STM32CubeMX更新工程,我们修改的部分都会被删除。\n 一、参考资料\n关于链"
      },
      {
        "url": "/sdoc/dev-tool/stm32cube/126b08e6f0211b46eabe9106.html",
        "relativePath": "/sdoc/01-开发工具/02-STM32Cube/LV030-STM32CubeIDE.html",
        "frontmatter": {
          "title": "LV030-STM32CubeIDE",
          "date": "2025-09-20 15:31:21",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/dev-tool/stm32cube/126b08e6f0211b46eabe9106",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "6eabe9106e39465d81b7853e19f74deb",
            "useduuid": "6eabe9106"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV030-STM32CubeIDE",
        "date": "2025-09-20 15:31:21",
        "excerpt": "",
        "capture": "一、STM32CubeIDE简介\n偶然看到STM32CubeIDE这个么一个软件,它是ST官方推出的IDE,它已经集成了芯片选型,外设配置,代码生成,代码编译,程序烧录和程序调试等一系列功能,可以说STM32CubeMX是它的其中一个功能而已。这里对这个软件做一个简单的了解。\n 1. 简介\nSTM32CubeIDE是一种高级C/C++开发平台,具有STM32微控制器和微处理器的外设配置、代码生成、代码编译和调试功能。它基于Eclipse®/CDT™框架和用于开发的GCC工具链,以及用于调试的GDB。它支持集成数以百计的现有插件,正是这些插件使Eclipse® IDE的功能趋于完整。\nSTM32"
      },
      {
        "url": "/sdoc/dev-tool/burn-and-debug/126b08ab16fa3e011692369d.html",
        "relativePath": "/sdoc/01-开发工具/10-下载与调试/LV001-下载与调试概述.html",
        "frontmatter": {
          "title": "LV001-下载与调试概述",
          "date": "2025-09-16 23:09:06",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/dev-tool/burn-and-debug/126b08ab16fa3e011692369d",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "11692369dc744332bc6f2569dd8ec58a",
            "useduuid": "11692369d"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV001-下载与调试概述",
        "date": "2025-09-16 23:09:06",
        "excerpt": "",
        "capture": "一、概述\nSTM32 常见的下载方式有三种:  \n| 下载方式 | 使用接口                 | 下载条件                                             | 优缺点                                                       |\n| -------------------------------------------------------- | ------------------------ | --------------------------------------------"
      },
      {
        "url": "/sdoc/dev-tool/burn-and-debug/126b08ab15ee0921c4f7fd64.html",
        "relativePath": "/sdoc/01-开发工具/10-下载与调试/LV002-JLink怎么使用.html",
        "frontmatter": {
          "title": "LV002-JLink怎么使用",
          "date": "2025-09-16 23:06:38",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/dev-tool/burn-and-debug/126b08ab15ee0921c4f7fd64",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "1c4f7fd64909407cb589ad3348a0c376",
            "useduuid": "1c4f7fd64"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV002-JLink怎么使用",
        "date": "2025-09-16 23:06:38",
        "excerpt": "",
        "capture": "一、驱动安装\n 1. 在哪里下载?\n我们到官网去下载一个:SEGGER - The Embedded Experts - Downloads - J-Link / J-Trace,可以选一个版本使用,我这里选的V7.86h,后我们可得到一个JLink_Windows_V786h_x86_64.exe可执行文件。\n&lt;img src=\"./LV002-JLink怎么使用/img/image-20230424172108179.png\" alt=\"image-20230424172108179\" style=\"zoom: 67%;\" /\n 2. 安装驱动\n这个由于我之前安装过,这里就不记录未安"
      },
      {
        "url": "/sdoc/dev-tool/burn-and-debug/126b08b7f6ce25a6c770f3b5.html",
        "relativePath": "/sdoc/01-开发工具/10-下载与调试/LV010-JFlash简介.html",
        "frontmatter": {
          "title": "LV010-JFlash简介",
          "date": "2025-09-17 07:46:38",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/dev-tool/burn-and-debug/126b08b7f6ce25a6c770f3b5",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "6c770f3b50d84d7fad7f77bc05f872fc",
            "useduuid": "6c770f3b5"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV010-JFlash简介",
        "date": "2025-09-17 07:46:38",
        "excerpt": "",
        "capture": "一、JFlash简介\n我们有源码的时候可以使用MDK编译,然后一键下载,那我们要是没有源码怎么办?用串口吗?当然可以,还有别的办法吗?有啊,下边我们就来了解一下吧。\nJ-Flash 是单独的Flash ISP烧写软件,是一种独立Flash编程软件了,可以把单独的bin文件或者hex文件烧写到单片机的flash里面去。它是在安装 J-Link 驱动时自带的一款Flash ISP软件,支持bin格式、hex格式、srec格式(Motorola的)。\n 二、安装jFlash\n这个软件一般是随着J-Link驱动安装一起自动安装的,所以在我们安装好J-Link驱动的时候,这个软件就已经被安装好了,没有必"
      },
      {
        "url": "/sdoc/dev-tool/burn-and-debug/126b08b9c98b11187c20e13a.html",
        "relativePath": "/sdoc/01-开发工具/10-下载与调试/LV015-STLink怎么使用.html",
        "frontmatter": {
          "title": "LV015-STLink怎么使用",
          "date": "2025-09-17 19:41:23",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/dev-tool/burn-and-debug/126b08b9c98b11187c20e13a",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "87c20e13a48a44dfb380f22a1b102e34",
            "useduuid": "87c20e13a"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV015-STLink怎么使用",
        "date": "2025-09-17 19:41:23",
        "excerpt": "",
        "capture": "我这有一款ST-Link,这个是10脚的,引脚图直接画在正面了,如下图所示,按照排线的孔插入对应底座就可以啦。\n&lt;img src=\"./LV015-STLink怎么使用/img/image-20230422161832141.png\" alt=\"image-20230422161832141\" style=\"zoom: 50%;\" /\n 一、驱动安装\n 1. 驱动下载\n我们到官网去下载一个:STSW-LINK009 - 为Windows 7、Windows 8、Windows 10签署的ST-LINK、ST-LINK/V2、ST-LINK/V2-1 USB驱动 - 意法半导体STMicr"
      },
      {
        "url": "/sdoc/dev-tool/burn-and-debug/126b08b9cb90276fafba387f.html",
        "relativePath": "/sdoc/01-开发工具/10-下载与调试/LV020-ST-LINK-Utility简介.html",
        "frontmatter": {
          "title": "LV020-ST-LINK-Utility简介",
          "date": "2025-09-17 19:46:40",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/dev-tool/burn-and-debug/126b08b9cb90276fafba387f",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "fafba387f5f84aab849e4d8b464e22ad",
            "useduuid": "fafba387f"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV020-ST-LINK-Utility简介",
        "date": "2025-09-17 19:46:40",
        "excerpt": "",
        "capture": "一、简介\n我们有源码的时候可以使用MDK编译,然后一键下载,那我们要是没有源码怎么办?用串口吗?当然可以,还有别的办法吗?有啊,下边我们就来了解一下吧。\nSTM32 ST-LINK Utility这个软件工具其实主要就是配套“ST-LINK”这个下载工具一起使用的上位机软件。因此使用STM32 ST-LINK Utility上位机软件需要有一个ST-LINK工具才行。它的功能和J-Link对应的工具类似,用于烧写代码。\nSTM32 ST-LINK Utility工具在产品开发过程中测试一些其他版本的代码,可以直接下载hex,而不用打开工程再编译去下载。 当开发完一个STM32产品,需要量产的时"
      },
      {
        "url": "/sdoc/dev-tool/burn-and-debug/126b08b9cea618afd74b243b.html",
        "relativePath": "/sdoc/01-开发工具/10-下载与调试/LV030-串口下载.html",
        "frontmatter": {
          "title": "LV030-串口下载",
          "date": "2025-09-17 19:54:30",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/dev-tool/burn-and-debug/126b08b9cea618afd74b243b",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "fd74b243b22149fe9c55a56a7b50b6d5",
            "useduuid": "fd74b243b"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV030-串口下载",
        "date": "2025-09-17 19:54:30",
        "excerpt": "<p>单片机开可以用串口下载程序,这部分来了解一下。</p>\n",
        "capture": "单片机开可以用串口下载程序,这部分来了解一下。\n 一、CH340驱动\n 1. CH340简介\n一般来说我们通过电脑连接到开发板的串口是用的RS232:\n&lt;img src=\"./LV030-串口下载/img/image-20220918134419265.png\" alt=\"image-20220918134419265\" style=\"zoom: 50%;\" /\n而RS-232 电平需要 DB9 接口 (也就是常说的 COM口)。现在的电脑很多都没有 DB9 接口了,取而代之的是 USB 接口,所以就催生出了很多 USB 转串口 TTL 芯片,比如 CH340、PL2303 等。通过这些"
      },
      {
        "url": "/sdoc/basic/overview/126b08ba0eae364f31526d00.html",
        "relativePath": "/sdoc/10-基础篇/01-概述/LV001-ARM体系结构.html",
        "frontmatter": {
          "title": "LV001-ARM体系结构",
          "date": "2025-09-17 21:18:22",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/basic/overview/126b08ba0eae364f31526d00",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "f31526d004e841cf942bb1c43e30f261",
            "useduuid": "f31526d00"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV001-ARM体系结构",
        "date": "2025-09-17 21:18:22",
        "excerpt": "",
        "capture": "一、 ARM简介\n 1. 为什么要学习ARM?\n在我们的生活中,STM32的应用得很广泛,像下边这些产品,可能都会用到STM32:\n&lt;img src=\"./LV001-ARM体系结构/img/image-20230408170339636.png\" alt=\"image-20230408170339636\" style=\"zoom:33%;\" /\n而STM32是一个微处理器,也就是MCU,它的结构一般如下:\n&lt;img src=\"./LV001-ARM体系结构/img/image-20230408170245470.png\" alt=\"image-20230408170245470\""
      },
      {
        "url": "/sdoc/basic/overview/126b08ba13b3329986816cf4.html",
        "relativePath": "/sdoc/10-基础篇/01-概述/LV010-常见存储器.html",
        "frontmatter": {
          "title": "LV010-常见存储器",
          "date": "2025-09-17 21:31:07",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/basic/overview/126b08ba13b3329986816cf4",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "986816cf43ae496ea97f2ac2344cf4bc",
            "useduuid": "986816cf4"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV010-常见存储器",
        "date": "2025-09-17 21:31:07",
        "excerpt": "",
        "capture": "一、单片机中的FLASH和SRAM\n我们在进行STM32芯片选型的时候,会看到这样的参数,可以看STM32F103选型页面:\n&lt;img src=\"./LV010-常见存储器/img/image-20230504212342232.png\" alt=\"image-20230504212342232\" style=\"zoom:50%;\" /\n比如这里,我们使用的STM32F103ZE系列芯片,有512KB的Flash和64KB的SRAM,这是什么意思呢?\n在STM32中 SRAM 及 FLASH 是作为内存和程序存储空间的。我们平时使用电脑,会考虑内存大小,有4GB、8GB、16GB等,也会"
      },
      {
        "url": "/sdoc/basic/overview/126b08c738bc16b5b982661d.html",
        "relativePath": "/sdoc/10-基础篇/01-概述/LV020-CortexM0简介.html",
        "frontmatter": {
          "title": "LV020-CortexM0简介",
          "date": "2025-09-18 07:45:56",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/basic/overview/126b08c738bc16b5b982661d",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "5b982661dbf54e3db91954b53e220c58",
            "useduuid": "5b982661d"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV020-CortexM0简介",
        "date": "2025-09-18 07:45:56",
        "excerpt": "",
        "capture": "课程中使用的是STM32F0系列的芯片,用的是Cortex-M0的内核,所以这里的笔记是关于Cortex-M0的,对于我后来使用Cortex-M3内核大体上的的知识是基本通用的。\n 一、Cortex-M0处理器简介\n 1. Cortex-M 系列产品\nCortex-M 系列产品主要包括 Cortex-M0、Cortex-M1、Cortex-M3、Cortex-M4、Cortex-M7 等,其中 Cortex-M0 主打低功耗和混合信号的处理,M3 主要用来替代 ARM7,重点侧重能耗与性能的平衡,而 M7 则重点放在高性能控制运算领域。\n&lt;img src=\"./LV020-CortexM"
      },
      {
        "url": "/sdoc/basic/overview/126b08e6a7051c291c1151a6.html",
        "relativePath": "/sdoc/10-基础篇/01-概述/LV022-CortexM0存储器映射.html",
        "frontmatter": {
          "title": "LV022-CortexM0存储器映射",
          "date": "2025-09-20 13:44:05",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/basic/overview/126b08e6a7051c291c1151a6",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "91c1151a6b3c4a07b26e0383912b8543",
            "useduuid": "91c1151a6"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV022-CortexM0存储器映射",
        "date": "2025-09-20 13:44:05",
        "excerpt": "",
        "capture": "一、存储器映射\n后面学习STM32的存储器映射的时候,有用到过M0架构的STM32F05x系列芯片,部分笔记记录在这里:\n&lt;img src=\"./LV022-CortexM0存储器映射/img/image-20230409205001077.png\" alt=\"image-20230409205001077\" style=\"zoom:33%;\" /\n被控单元的FLASH,RAM和AHB到APB的桥(即片上外设),这些功能部件共同排列在一个 4GB 的地址空间内。我们在编程的时候,可以通过他们的地址找到他们,然后来操作他们。存储器本身没有地址,给存储器分配地址的过程叫存储器映射。\n&lt;"
      },
      {
        "url": "/sdoc/basic/overview/126b08c73a222946645cba90.html",
        "relativePath": "/sdoc/10-基础篇/01-概述/LV030-CortexM3简介.html",
        "frontmatter": {
          "title": "LV030-CortexM3简介",
          "date": "2025-09-18 07:49:14",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/basic/overview/126b08c73a222946645cba90",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "6645cba90f414432ac823c9d1938fc37",
            "useduuid": "6645cba90"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV030-CortexM3简介",
        "date": "2025-09-18 07:49:14",
        "excerpt": "",
        "capture": "一、概述\nARM(Advanced RISC Machine)是一个32位精简指令集(RISC)处理器架构,应用于许多嵌入式系统设计中。其中,自从ARMv7系列架构开始,ARM公司推出了Cortex系列,并根据不同的应用场景推出了Cortex-M,Cortex-A和Cortex-R三款不同方向的产品。\nARM代表了一种芯片标准,体现了芯片的架构设计,而具体涉及到存储器容量,片上外设,IO引脚数等实现,则是由不同的芯片厂商进行设计的。\n 二、内核与芯片\nARM公司提供内核(如Cortex M3,简称CM3,下同)授权,完整的MCU还需要很多其他组件。芯片公司(ST、 NXP、 TI、 GD、华大"
      },
      {
        "url": "/sdoc/basic/overview/126b08c73d361161792b640a.html",
        "relativePath": "/sdoc/10-基础篇/01-概述/LV035-CortexM3存储器系统.html",
        "frontmatter": {
          "title": "LV035-CortexM3存储器系统",
          "date": "2025-09-18 07:57:02",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/basic/overview/126b08c73d361161792b640a",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "1792b640ad2b40c1a34cc0ea4da24ed9",
            "useduuid": "1792b640a"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV035-CortexM3存储器系统",
        "date": "2025-09-18 07:57:02",
        "excerpt": "",
        "capture": "本篇笔记主要来自于《Cortex-M3 权威指南》的第五章存储器系统。其实有一部分概念在后边一篇笔记中才有所体现,比如什么是寄存器?。\n 一、存储器映射\nCM3 只有一个单一固定的存储器映射。这一点极大地方便了软件在各种 CM3 单片机间的移植。举个简单的例子,各款 CM3 单片机的 NVIC 和 MPU 都在相同的位置布设寄存器,使得它们变得通用。尽管如此, CM3 定出的条条框框是粗线条的,它依然允许芯片制造商灵活地分配存储器空间,以制造出各具特色的单片机产品。存储空间的一些位置用于调试组件等私有外设,这个地址段被称为“ 私有外设区”。私有外设区的组件包括:  \n(1)闪存地址重载及断点单"
      },
      {
        "url": "/sdoc/basic/overview/126b08e5d7b911b28ed9ee4c.html",
        "relativePath": "/sdoc/10-基础篇/01-概述/LV040-CortexM3异常.html",
        "frontmatter": {
          "title": "LV040-CortexM3异常",
          "date": "2025-09-20 08:13:37",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/basic/overview/126b08e5d7b911b28ed9ee4c",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "28ed9ee4c4ee4374a05b403be9d08519",
            "useduuid": "28ed9ee4c"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV040-CortexM3异常",
        "date": "2025-09-20 08:13:37",
        "excerpt": "",
        "capture": "一、常见缩略语含义\n| 缩写 | 说明                               |\n| ---- | ---------------------------------- |\n| IRQ  | 中断请求(通常是指外部中断的请求) |\n| ISR  | 中断服务例程                       |\n| NMI  | 不可屏蔽中断                       |\n| NVIC | 嵌套向量中断控制器                 |\n| PSP  | 进程堆栈指针                       |\n 二、异常\n 1. 什么是异常?"
      },
      {
        "url": "/sdoc/basic/overview/126b08e5fb5429a0009ffc8b.html",
        "relativePath": "/sdoc/10-基础篇/01-概述/LV045-CortexM3的NVIC中断控制.html",
        "frontmatter": {
          "title": "LV040-CortexM3的NVIC中断控制",
          "date": "2025-09-20 09:04:52",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/basic/overview/126b08e5fb5429a0009ffc8b",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "0009ffc8b07a4e459a29f0ba0518592b",
            "useduuid": "0009ffc8b"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV040-CortexM3的NVIC中断控制",
        "date": "2025-09-20 09:04:52",
        "excerpt": "",
        "capture": "一、NVIC简介\nCortex-M3内核有一个专门管理中断的外设NVIC( Nested Vectored Interrupt Controller,嵌套向量中断控制器) , 通过优先级控制中断的嵌套和调度。NVIC是一个总的中断控制器, 无论是来在内核的异常还是外设的外部中断, 都由NVIC统一进行管理。 是 Cortex‐M3 不可分离的一部分, 它与 CM3 内核的逻辑紧密耦合, 有一部分甚至水乳交融在一起。 \nNVIC 与 CM3 内核同声相应,同气相求,相辅相成,里应外合,共同完成对中断的响应。 NVIC作为在内核里的外设,NVIC 的寄存器以存储器映射的方式来访问, 除了包含控制寄"
      },
      {
        "url": "/sdoc/basic/stm32basic/126b08e5feaa2043ad05a48e.html",
        "relativePath": "/sdoc/10-基础篇/10-STM32基础/LV001-STM32概述.html",
        "frontmatter": {
          "title": "LV001-STM32概述",
          "date": "2025-09-20 09:13:06",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/basic/stm32basic/126b08e5feaa2043ad05a48e",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "3ad05a48eac840679287e1b2301b039a",
            "useduuid": "3ad05a48e"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV001-STM32概述",
        "date": "2025-09-20 09:13:06",
        "excerpt": "",
        "capture": "一、STM32简介\n 1. STM32与ARM\n在2004年, ARM公司推出新一代Cortex内核后, ST公司抓住机遇,在很短的时间内就向市场推出了一系列的32位微控制器, 同时提供基于库的开发模式,加快用户研发周期。 STM32就是ST公司基于ARM Cortex-M系列内核设计的微控制器,专为高性能、低功耗、低成本场景设计。  \nSTM32如今产品系列非常丰富, 主要为ARM Cortex-M内核系列MCU,也开始涉及ARM Cortex-A内核\n系列MPU,如下图所示。 \n&lt;img src=\"./LV001-STM32概述/img/image-20230417223005421"
      },
      {
        "url": "/sdoc/basic/stm32basic/126b08e600543a33cc0a657a.html",
        "relativePath": "/sdoc/10-基础篇/10-STM32基础/LV010-嵌入式C语言.html",
        "frontmatter": {
          "title": "LV010-嵌入式C语言",
          "date": "2025-09-20 09:17:32",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/basic/stm32basic/126b08e600543a33cc0a657a",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "3cc0a657a05d403785cc85fa30a99505",
            "useduuid": "3cc0a657a"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV010-嵌入式C语言",
        "date": "2025-09-20 09:17:32",
        "excerpt": "",
        "capture": "其实之前就学习过C预言了,语法什么的在嵌入式中都是一模一样的,就是有些数据类型还有相关操作可以再熟悉一下。\n 一、STM32支持的数据类型\n以STM32F103ZE这一款芯片为例,这是一块32bit的MCU,基本数据类型在此款芯片中的数据长度,以及在HAL库函数中的定义( stdint.h文件中的定义,采用C99标准)如下图:\n&lt;img src=\"./LV010-嵌入式C语言/img/image-20230418221356751.png\" alt=\"image-20230418221356751\" style=\"zoom: 80%;\" /\n 建议在开发过程中使用库定义的数据类型, 来定"
      },
      {
        "url": "/sdoc/basic/stm32basic/126b08e603011c2e21862cc6.html",
        "relativePath": "/sdoc/10-基础篇/10-STM32基础/LV020-STM32怎么开发.html",
        "frontmatter": {
          "title": "LV020-STM32怎么开发",
          "date": "2025-09-20 09:24:17",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/basic/stm32basic/126b08e603011c2e21862cc6",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "e21862cc6b54423c827258b8732bcdd8",
            "useduuid": "e21862cc6"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV020-STM32怎么开发",
        "date": "2025-09-20 09:24:17",
        "excerpt": "",
        "capture": "一、开发方式\n这篇笔记是已经对STM32有了一定的了解后才写的,其实STM32的开发大概有四种方式\n- (1)汇编,强的一批,我们可以直接使用内部寄存器和STM32的寄存器来使用汇编开发,难度可想而知。\n- (2)C语言+寄存器开发,这种相对容易,毕竟C语言我们都学过,无非是寄存器超级多。\n- (3)C语言+标准库,这个是我入门STM32的时候最先使用的库,一般都用这个。\n- (4)C语言+HAL库,HAL库配合STM32CubeMX软件使用,由于图形化的配置界面,这个HAL库据说是ST以后主推的库。\n 二、库开发与寄存器开发的关系  \n一般我们都是从学 51 单片机开发转而学习 STM32 "
      },
      {
        "url": "/sdoc/basic/stm32basic/126b08e608d01035e7260fce.html",
        "relativePath": "/sdoc/10-基础篇/10-STM32基础/LV021-认识HAL库.html",
        "frontmatter": {
          "title": "LV021-认识HAL库",
          "date": "2025-09-20 09:39:04",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/basic/stm32basic/126b08e608d01035e7260fce",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "5e7260fce3184ab293e2a218bc58687b",
            "useduuid": "5e7260fce"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV021-认识HAL库",
        "date": "2025-09-20 09:39:04",
        "excerpt": "<p>HAL,英文全称 Hardware Abstraction Layer,即硬件抽象层。 HAL 库是 ST 公司提供的外设驱动代码的驱动库,用户只需要调用库的 API 函数,便可间接配置寄存器。我们要写程序控制 STM32 芯片,其实最终就是控制它的寄存器,使之工作在我们需要的模式下, HAL 库将大部分寄存器的操作封装成了函数,我们只需要学习和掌握 HAL 库函数的结构和用法,就能方便地驱动 STM32 工作, 以节省开发时间。</p>\n<blockquote>\n<p>主要是ST官网主推的现在就是这个HAL库,而且STM32CubeMX软件生成工程也是用的这个,所以还是有必要学习一下。</p>\n</blockquote>\n",
        "capture": "HAL,英文全称 Hardware Abstraction Layer,即硬件抽象层。 HAL 库是 ST 公司提供的外设驱动代码的驱动库,用户只需要调用库的 API 函数,便可间接配置寄存器。我们要写程序控制 STM32 芯片,其实最终就是控制它的寄存器,使之工作在我们需要的模式下, HAL 库将大部分寄存器的操作封装成了函数,我们只需要学习和掌握 HAL 库函数的结构和用法,就能方便地驱动 STM32 工作, 以节省开发时间。  \n\n 一、HAL库驱动包\n 1. 下载STM32CubeF1固件\n直接来这里下载:STM32CubeF1 | Product - 意法半导体STMicroelec"
      },
      {
        "url": "/sdoc/basic/stm32basic/126b08e7828f108bc0b2f2dc.html",
        "relativePath": "/sdoc/10-基础篇/10-STM32基础/LV030-STM32程序下载.html",
        "frontmatter": {
          "title": "LV030-STM32程序下载",
          "date": "2025-09-20 19:06:07",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/basic/stm32basic/126b08e7828f108bc0b2f2dc",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "bc0b2f2dc98042cb8e44dc7aa1995faa",
            "useduuid": "bc0b2f2dc"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV030-STM32程序下载",
        "date": "2025-09-20 19:06:07",
        "excerpt": "",
        "capture": "一、创建MDK工程\n- 参考:01-开发工具/01-keil/LV002-工程创建.md\n其中MDK版本和芯片支持包的版本如下:\n- 参考:01-开发工具/02-STM32Cube/LV002-STM32CubeMX工程创建.md\nSTM32CubeMX的版本如下:\n&lt;img src=\"./LV030-STM32程序下载/img/image-20250920223052679.png\" alt=\"image-20250920223052679\" style=\"zoom:50%;\" /\n 二、生成hex文件\n首先当然是生成成果物文件啦,我们使用MDK编写完程序后,要生成一个可以下载到开发板"
      },
      {
        "url": "/sdoc/basic/stm32basic/126b08e6831f0a0031c3f015.html",
        "relativePath": "/sdoc/10-基础篇/10-STM32基础/LV040-STM32系统架构.html",
        "frontmatter": {
          "title": "LV040-STM32系统架构",
          "date": "2025-09-20 12:52:15",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/basic/stm32basic/126b08e6831f0a0031c3f015",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "031c3f0159bd41bfa7f2e89f6b50e340",
            "useduuid": "031c3f015"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV040-STM32系统架构",
        "date": "2025-09-20 12:52:15",
        "excerpt": "",
        "capture": "一、STM32简介\n 1. 回顾\n2007 年 6 月, ST 在北京发布了全球第一款基于 ARM Cortex M3 内核的 32 位通用微控制器芯片: STM32F103,以优异的性能,丰富的资源,超高的性价比,迅速占领市场,从此一鸣惊人,一发不可收拾,截止到 2020 年 6 月, STM32 累计出货量超过 45 亿颗。  \n后面学习的STM32就是用的下图中的STM32F103ZET6:\n&lt;img src=\"./LV040-STM32系统架构/img/image-20250920125818906.png\" alt=\"image-20250920125818906\" style"
      },
      {
        "url": "/sdoc/basic/stm32basic/126b08e6840f3457e72c8780.html",
        "relativePath": "/sdoc/10-基础篇/10-STM32基础/LV045-STM32存储器系统.html",
        "frontmatter": {
          "title": "LV045-STM32存储器系统",
          "date": "2025-09-20 12:54:55",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/basic/stm32basic/126b08e6840f3457e72c8780",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "7e72c87803ee4322bcd1072590f70cb3",
            "useduuid": "7e72c8780"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV045-STM32存储器系统",
        "date": "2025-09-20 12:54:55",
        "excerpt": "",
        "capture": "一、基本概念\n 1. 寄存器\n 1.1 什么是寄存器?\n寄存器是计算机和微处理器内部的一种高速、小容量的存储单元,主要用于暂存指令、数据和地址。它是CPU或其他硬件组件直接操作的对象,访问速度远高于内存(RAM)。\n可以将其理解为 “工作台”:\n- CPU内核寄存器 是工程师(CPU)手边最顺手的工具,直接参与加工。\n- 外设寄存器 是工程师与外部机器(外设)进行控制和状态交互的控制面板。\n 1.2 寄存器分类\n寄存器根据其功能和位置,可以分为两个截然不同的层级。\n 1.2.1 CPU内核寄存器 (Core Registers)\n这类寄存器位于中央处理单元(CPU)内部,是CPU核心的一部分。"
      },
      {
        "url": "/sdoc/basic/stm32basic/126b08e6a53918eab18839bd.html",
        "relativePath": "/sdoc/10-基础篇/10-STM32基础/LV050-STM32地址重映射.html",
        "frontmatter": {
          "title": "LV050-STM32地址重映射",
          "date": "2025-09-20 13:39:45",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/basic/stm32basic/126b08e6a53918eab18839bd",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "ab18839bd52b440b9ca51fa34ea3d714",
            "useduuid": "ab18839bd"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV050-STM32地址重映射",
        "date": "2025-09-20 13:39:45",
        "excerpt": "",
        "capture": "一、地址重映射\n这一部分还是以STM42F429为例。F429的中文手册可以看这里:RM0090_STM32F40xxx、STM32F41xxx、STM32F42xxx、STM32F43xx参考手册\n 1. 自举的概念\n自举(bootstrap)计算机设备使用硬件加载的程序,用于初始化足够的软件来查找并加载功能完整的操作系统。也用来描述加载自举程序的过程。什么是单片机的自举?单片机的自举就是单片机的启动。\n我们说,单片机程序基本都是从0地址出开始运行的,F429的0x00000000\\~0x001FFFFF地址映射了到什么存储器上,那么就从该存储器上读取指令,开始运行。\n至于说0x000000"
      },
      {
        "url": "/sdoc/basic/stm32setup/126b08e788e83383285742cb.html",
        "relativePath": "/sdoc/10-基础篇/20-STM32的启动/LV001-启动文件.html",
        "frontmatter": {
          "title": "LV001-启动文件",
          "date": "2025-09-20 19:22:32",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/basic/stm32setup/126b08e788e83383285742cb",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "3285742cb8d24fba98867646d8e8231b",
            "useduuid": "3285742cb"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV001-启动文件",
        "date": "2025-09-20 19:22:32",
        "excerpt": "",
        "capture": "这一节我们来分析一下MDK工程中的STM32启动文件。\n 一、启动方式\n- 参考10-基础篇/20-STM32的启动/LV005-启动过程.md和Cortex-M3 权威指南的3.8 复位序列\n在离开复位状态后,CM3做的第一件事就是读取下列两个32位整数的值:\n(1)从地址0x0000,0000处取出MSP的初始值。 \n(2)从地址0x0000,0004 处取出PC的初始值——这个值是复位向量,LSB必须是1。然后从这个值所对应的地址处取指。 \n&lt;img src=\"./LV001-启动文件/img/image-20250924071704950.png\" alt=\"image-2025"
      },
      {
        "url": "/sdoc/basic/stm32setup/126b08e78de70b59cd9ba362.html",
        "relativePath": "/sdoc/10-基础篇/20-STM32的启动/LV005-启动过程.html",
        "frontmatter": {
          "title": "LV005-启动过程",
          "date": "2025-09-20 19:35:11",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/basic/stm32setup/126b08e78de70b59cd9ba362",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "9cd9ba36208d49f99352645293a0d904",
            "useduuid": "9cd9ba362"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV005-启动过程",
        "date": "2025-09-20 19:35:11",
        "excerpt": "",
        "capture": "这一部分主要是分析STM32的启动流程,我们将会接触到内部FLASH的相关内容。\n 一、内部FLASH\n这里了解一下内部Flash的一些内容,并不涉及对内部Flash读写等相关操作。\n 1. FLASH简介\nflash是存储芯片的一种,通过特定的程序可以修改里面的数据。FLASH在电子以及半导体领域内往往表示 Flash Memory 的意思,即平时所说的“闪存”,全名叫 Flash EEPROM Memory。它结合了ROM和RAM的长处,不仅具备电子可擦除可编程(EEPROM)的性能,还可以快速读取数据(NVRAM的优势),使数据不会因为断电而丢失。\n在STM32芯片内部有一个FLASH存"
      },
      {
        "url": "/sdoc/basic/stm32setup/126b08e7afad049a561ccf1b.html",
        "relativePath": "/sdoc/10-基础篇/20-STM32的启动/LV010-在内部SRAM调试.html",
        "frontmatter": {
          "title": "LV010-在内部SRAM调试",
          "date": "2025-09-20 20:21:57",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/basic/stm32setup/126b08e7afad049a561ccf1b",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "a561ccf1b5d3443c85b0f21280803c3a",
            "useduuid": "a561ccf1b"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV010-在内部SRAM调试",
        "date": "2025-09-20 20:21:57",
        "excerpt": "",
        "capture": "一、在RAM中调试代码\n 1. 简介\n一般情况下,我们在 MDK 中编写工程应用后,调试时都是把程序下载到芯片的内部 FLASH 运行测试的,代码的 CODE 及 RW-data 的内容被写入到内部 FLASH 中存储。但在某些应用场合下却不希望或不能修改内部 FLASH 的内容,这时就可以使用 RAM 调试功能了,它的本质是把原来存储在内部 FLASH 的代码 (CODE 及 RW-data 的内容) 改为存储到 SRAM 中 (内部 SRAM 或外部 SDRAM 均可),芯片复位后从 SRAM 中加载代码并运行。 \n 2. 优缺点\n把代码下载到 RAM 中调试有如下优点 :\n(1)下载程序"
      },
      {
        "url": "/sdoc/basic/stm32interrupt/126b08f57241322fa604782d.html",
        "relativePath": "/sdoc/10-基础篇/30-STM32的中断/LV001-STM32中断简介.html",
        "frontmatter": {
          "title": "LV001-STM32中断简介",
          "date": "2025-09-21 10:39:37",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/basic/stm32interrupt/126b08f57241322fa604782d",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "fa604782d9e94117829d0f1a00c0d99d",
            "useduuid": "fa604782d"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV001-STM32中断简介",
        "date": "2025-09-21 10:39:37",
        "excerpt": "",
        "capture": "一、基本概念\n生活中,有这样一个场景,我现在正在看电视剧,然后这个时候突然有人敲门,我该怎么做?正常我们应该是暂停电视剧,然后去开门,处理有人敲门这件事,这件事处理完后,回到电视机前,继续看电视剧,这就是一个中断。\n在处理器中,中断是一个过程,即CPU在正常执行程序的过程中,遇到外部/内部的紧急事件需要处理,暂时中止当前程序的执行,转而去为处理紧急的事件,待处理完毕后再返回被打断的程序处继续往下执行。中断在计算机多任务处理,尤其是即时系统中尤为重要。比如uCOS,FreeRTOS等。\n中断存在的意义就在于中断能提高CPU的效率,同时能对突发事件做出实时处理。实现程序的并行化,实现嵌入式系统进程"
      },
      {
        "url": "/sdoc/basic/stm32clock/126b08f5d89727a6ee395582.html",
        "relativePath": "/sdoc/10-基础篇/40-STM32时钟/LV001-STM32F1时钟系统.html",
        "frontmatter": {
          "title": "LV001-STM32F1时钟系统",
          "date": "2025-09-21 13:01:35",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/basic/stm32clock/126b08f5d89727a6ee395582",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "6ee395582b8f401e806f3f6b8aac7e4a",
            "useduuid": "6ee395582"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV001-STM32F1时钟系统",
        "date": "2025-09-21 13:01:35",
        "excerpt": "",
        "capture": "一、STM32时钟树概述\n 1. 时钟系统\n时钟系统是由振荡器(信号源)、定时唤醒器、分频器等组成的电路。常用的信号源有晶体振荡器和RC振荡器。\n时钟是嵌入式系统的脉搏,处理器内核在时钟驱动下完成指令执行,状态变换等动作,外设部件在时钟的驱动下完成各种工作,比如串口数据的发送、A/D转换、定时器计数等等。因此时钟对于计算机系统是至关重要的,通常时钟系统出现问题也是致命的,比如振荡器不起振、振荡不稳、停振等。\n&lt;img src=\"./LV001-STM32F1时钟系统/img/image-20230502201120397.png\" alt=\"image-20230502201120397"
      },
      {
        "url": "/sdoc/basic/stm32clock/126b08f5dcd1392ef8558043.html",
        "relativePath": "/sdoc/10-基础篇/40-STM32时钟/LV010-STM32F1的SYSCLK.html",
        "frontmatter": {
          "title": "LV010-STM32F1的SYSCLK",
          "date": "2025-09-21 13:12:17",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/basic/stm32clock/126b08f5dcd1392ef8558043",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "ef8558043211434e9696dd7586e40951",
            "useduuid": "ef8558043"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV010-STM32F1的SYSCLK",
        "date": "2025-09-21 13:12:17",
        "excerpt": "<p>这一部分我们来详细了解一下系统时钟SYSCLK。</p>\n",
        "capture": "这一部分我们来详细了解一下系统时钟SYSCLK。\n 一、PLL 作为系统时钟源  \n在 STM32 中, 锁相环的输出也可以作为芯片系统的时钟源。 根据STM32F1的时钟结构,使用锁相环时只需要进行三个部分的配置。为了方便查看,这里直接截取STM32CubeMX中时钟树中使用 PLL 作为系统时钟源的配置部分,  \n- PLLXTPRE: HSE 分频器作为 PLL 输入 (HSE divider for PLL entry)  \n即图 11.1.2.1 在标注为①的地方, 它专门用于 HSE, ST 设计它有两种方式,并把它的控制功能放在 RCC_CFGR 寄存器中, 我们引用如图:\n从 "
      },
      {
        "url": "/sdoc/basic/stm32flash/126b09345207167f3ed95339.html",
        "relativePath": "/sdoc/10-基础篇/50-STM32内部FLASH/LV001-内部FLASH简介.html",
        "frontmatter": {
          "title": "LV001-内部FLASH简介",
          "date": "2025-09-25 22:44:55",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/basic/stm32flash/126b09345207167f3ed95339",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "f3ed95339a054335bd7861fbbdfca984",
            "useduuid": "f3ed95339"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV001-内部FLASH简介",
        "date": "2025-09-25 22:44:55",
        "excerpt": "",
        "capture": "一、内部FLASH\n这里了解一下内部Flash的一些内容,并不涉及对内部Flash读写等相关操作。\n 1. FLASH\n 简介\nflash是存储芯片的一种,通过特定的程序可以修改里面的数据。FLASH在电子以及半导体领域内往往表示 Flash Memory 的意思,即平时所说的“闪存”,全名叫 Flash EEPROM Memory。它结合了ROM和RAM的长处,不仅具备电子可擦除可编程(EEPROM)的性能,还可以快速读取数据(NVRAM的优势),使数据不会因为断电而丢失。\n在STM32芯片内部有一个FLASH存储器,它主要用于存储代码,它是一种nor flash。我们在电脑上编写好应用程序"
      },
      {
        "url": "/sdoc/basic/stm32flash/126b0934555e1e98aa9081c5.html",
        "relativePath": "/sdoc/10-基础篇/50-STM32内部FLASH/LV010-FLASH操作流程.html",
        "frontmatter": {
          "title": "LV010-FLASH操作流程",
          "date": "2025-09-25 22:53:10",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/basic/stm32flash/126b0934555e1e98aa9081c5",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "8aa9081c5bfb4658bc14302518ab96b3",
            "useduuid": "8aa9081c5"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV010-FLASH操作流程",
        "date": "2025-09-25 22:53:10",
        "excerpt": "",
        "capture": "我这里使用的是STM32CubeMX来配置生成工程,使用的就是HAL库,由于内部Flash不需要我们来做初始化,所以软件不用配置,我们直接调用相应的驱动函数即可。这些可以操作内部Flash的函数声明都存在于 以下几个文件中:\n```c\nstm32f1xx_hal_flash_ex.h\nstm32f1xx_hal_flash.h \nstm32f1xx_hal_flash_ex.c\nstm32f1xx_hal_flash.c \n```\n关于Flash的相关资料,ST官方有另外的文档,叫做STM32F10xxx闪存编程手册,英文版在这里:STM32F10xxx Flash memory microc"
      },
      {
        "url": "/sdoc/basic/stm32flash/126b0e26745a3124f27972bd.html",
        "relativePath": "/sdoc/10-基础篇/50-STM32内部FLASH/LV020-IAP编程简介.html",
        "frontmatter": {
          "title": "LV020-IAP编程简介",
          "date": "2025-10-08 20:18:18",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/basic/stm32flash/126b0e26745a3124f27972bd",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "4f27972bd3fc4860b4605d3ba9d93bb7",
            "useduuid": "4f27972bd"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV020-IAP编程简介",
        "date": "2025-10-08 20:18:18",
        "excerpt": "",
        "capture": "一、STM32编程方式\n 1. 在线编程\n 1.1 基本概念\nICP,全称为In-Circuit Programming,即在线编程。是通过 JTAG或者SWD 协议或者系统加载程序(Bootloader)下载用户应用程序到微控制器中。这种方式就是我们平时用的下载程序方式,就是通过JTAG下载器将我们通过Keil生成的hex文件下载到STM32开发板中。\n注意:这里我也不知道教程为什么叫这个,前边学习启动方式的时候也有提到过,它其实也可以称为 In System Program,也就是ISP,主要依靠ST官方在芯片内固化的BootLoader来接收来自串口的程序。\n 1.2 下载流程\n从串口下"
      },
      {
        "url": "/sdoc/basic/stm32flash/126b0e4540061175c7584cc2.html",
        "relativePath": "/sdoc/10-基础篇/50-STM32内部FLASH/LV025-IAP编程实现.html",
        "frontmatter": {
          "title": "LV025-IAP编程实现",
          "date": "2025-10-10 22:00:38",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/basic/stm32flash/126b0e4540061175c7584cc2",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "5c7584cc23ea451aaa122d51f3053c7c",
            "useduuid": "5c7584cc2"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV025-IAP编程实现",
        "date": "2025-10-10 22:00:38",
        "excerpt": "",
        "capture": "一、APP应用程序制作\nSTM32 的 APP 程序不仅可以放到 FLASH 里面运行,也可以放到 SRAM 里面运行,  我们使用的STM32F103ZET6有512KB的FLASH和64KB的SRAM,FLASH的地址为 0x0800 0000 \\~ 0x0807 FFFF,内部SRAM的地址为 0x2000 0000 \\~ 0x2000 FFFF。\n 1.APP起始地址设置\n 1.1 FLASH中运行\n- 【Options for Target】&rarr;【Target】\n&lt;img src=\"./LV025-IAP编程实现/img/image-20220925122206196."
      },
      {
        "url": "/sdoc/basic/stm32memory/126b0941431c016e4bdd2a68.html",
        "relativePath": "/sdoc/10-基础篇/60-STM32的内存/LV001-STM32内存简介.html",
        "frontmatter": {
          "title": "LV001-STM32内存简介",
          "date": "2025-09-26 07:26:04",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/basic/stm32memory/126b0941431c016e4bdd2a68",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "e4bdd2a68030419b91dea7af452724aa",
            "useduuid": "e4bdd2a68"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV001-STM32内存简介",
        "date": "2025-09-26 07:26:04",
        "excerpt": "",
        "capture": "其实断断续续的,STM32启动文件、启动方式、程序组成、map文件、sct文件、sram、内部flash都大概已经了解过了,这里进行总结,从stm32启动开始,到程序跑起来,这中间究竟是怎么个过程。\n\n 一、单片机的启动\n&lt;img src=\"./LV001-STM32内存简介/img/image-20251008084514529.png\" alt=\"image-20251008084514529\" style=\"zoom:50%;\" /&gt;\n关于存储器映像,可以看 10-基础篇/10-STM32基础/LV045-STM32存储器系统.md\n关于启动方式,我们可以看 10-基础篇/2"
      },
      {
        "url": "/sdoc/basic/stm32memory/126b0e24d5e326e3a7296e85.html",
        "relativePath": "/sdoc/10-基础篇/60-STM32的内存/LV010-内存管理.html",
        "frontmatter": {
          "title": "LV010-内存管理",
          "date": "2025-10-08 09:57:15",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/basic/stm32memory/126b0e24d5e326e3a7296e85",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "3a7296e85ae54af393dd0790947698ce",
            "useduuid": "3a7296e85"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV010-内存管理",
        "date": "2025-10-08 09:57:15",
        "excerpt": "",
        "capture": "我们学习了使用 STM32F1 驱动外部 SRAM,以扩展 STM32F1 的内存,加上STM32F1 本身自带的 64K 字节内存,我们可供使用的内存还是比较多的。如果我们所用的内存都像上一节的 testsram 那样,定义一个数组来使用,显然不是一个好办法。后来在使用Flash做Bootloader实验的时候,就无法在原有工程中定义一个55KB的数组,然后 lcd做字模缩放的时候,数组也是预先定义好的,直接就16KB,再加上一些其他的,STM32内部Flash一共就64KB,直接被我占满,sct文件中定义了SRAM的长度,导致编译都无法通过,所以动态的去管理内存就很有必要了。\n &lt;f"
      },
      {
        "url": "/sdoc/basic/stm32pwr/126b09513f17393c50358806.html",
        "relativePath": "/sdoc/10-基础篇/70-STM32电源管理/LV001-电源管理简介.html",
        "frontmatter": {
          "title": "LV001-电源管理简介",
          "date": "2025-09-27 12:01:51",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/basic/stm32pwr/126b09513f17393c50358806",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "c503588060cf485a965221f48977e91d",
            "useduuid": "c50358806"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV001-电源管理简介",
        "date": "2025-09-27 12:01:51",
        "excerpt": "",
        "capture": "一、STM32电源管理\n 1. 电源管理简介\n电源对电子设备的重要性不言而喻,它是保证系统稳定运行的基础,而保证系统能稳定运行后,又有低功耗的要求。\n在很多应用场合中都对电子设备的功耗要求非常苛刻,如某些传感器信息采集设备,仅靠小型的电池提供电源,要求工作长达数年之久,且期间不需要任何维护;由于智慧穿戴设备的小型化要求,电池体积不能太大导致容量也比较小,所以也很有必要从控制功耗入手,提高设备的续行时间。\n因此, STM32 有专门的电源管理外设监控电源并管理设备的运行模式,确保系统正常运行,并尽量降低器件的功耗。  \n 2. 电源系统结构\n为了方便进行电源管理, STM32把它的外设、内核等模"
      },
      {
        "url": "/sdoc/basic/stm32pwr/126b095140443bc89b1ebe84.html",
        "relativePath": "/sdoc/10-基础篇/70-STM32电源管理/LV010-三种模式实现.html",
        "frontmatter": {
          "title": "LV010-三种模式实现",
          "date": "2025-09-27 12:04:52",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/basic/stm32pwr/126b095140443bc89b1ebe84",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "89b1ebe841074780aa0a2abaac3caa24",
            "useduuid": "89b1ebe84"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV010-三种模式实现",
        "date": "2025-09-27 12:04:52",
        "excerpt": "",
        "capture": "一、通用配置\n 1. 硬件原理图\n硬件主要使用到了按键、 LED 以及使用串口输出调试信息。 \n&lt;img src=\"./LV010-三种模式实现/img/image-20230610191800976.png\" alt=\"image-20230610191800976\" style=\"zoom: 33%;\" /\n 2. STM32CubeMX配置\n 2.1 时钟树\n&lt;img src=\"./LV010-三种模式实现/img/image-20230610191131427.png\" alt=\"image-20230610191131427\" style=\"zoom: 25%;\" /&g"
      },
      {
        "url": "/sdoc/peripheral/gpio/126b08e802d21f6e4f658296.html",
        "relativePath": "/sdoc/20-基本外设篇/01-GPIO/LV001-STM32的GPIO简介.html",
        "frontmatter": {
          "title": "LV001-STM32的GPIO简介",
          "date": "2025-09-20 22:34:42",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/gpio/126b08e802d21f6e4f658296",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "e4f658296d8f440694a80e81f31777d4",
            "useduuid": "e4f658296"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV001-STM32的GPIO简介",
        "date": "2025-09-20 22:34:42",
        "excerpt": "",
        "capture": "一、GPIO简介\nGPIO是通用输入输出端口的简称,简单来说就是STM32可控制的引脚,STM32芯片的GPIO引脚与外部设备连接起来,从而实现与外部通讯、控制以及数据采集的功能。 STM32芯片的GPIO被分成很多组,每组有16个引脚(也有可能少于16个),如型号为STM32F103ZET6型号的芯片有GPIOA、GPIOB、GPIOC至GPIOG共7组GPIO,一共就有16x7=112个IO,该芯片一共144个引脚,其中GPIO引脚就占了一大部分,所有的GPIO引脚都有基本的输入输出功能。\n最基本的输出功能是由STM32控制引脚输出高、低电平,实现开关控制,如把GPIO引脚接入到LED灯,"
      },
      {
        "url": "/sdoc/peripheral/gpio/126b08e804d303ad5b541ecd.html",
        "relativePath": "/sdoc/20-基本外设篇/01-GPIO/LV010-输入输出模式详解.html",
        "frontmatter": {
          "title": "LV010-输入输出模式详解",
          "date": "2025-09-20 22:39:55",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/gpio/126b08e804d303ad5b541ecd",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "d5b541ecde0f4e1799e17d09e88a33fa",
            "useduuid": "d5b541ecd"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV010-输入输出模式详解",
        "date": "2025-09-20 22:39:55",
        "excerpt": "",
        "capture": "这篇笔记主要是详细学习一下GPIO输入输出各种模式(推挽、开漏、准双向端口)。\n 一、概述\n 1. IO模式说明\n概括地说,IO的功能模式大致可以分为输入、输出以及输入输出双向三大类。其中作为基本输入IO,相对比较简单,主要涉及的知识点就是高阻态;作为输出IO,相比于输入复杂一些,工作模式主要有开漏(Open Drain)模式和推挽(Push-Pull)模式,这一部分涉及的知识点比较多;对于输入输出IO,容易产生疑惑的地方是准双向和双向端口的区别。\n 2. MOS管基础\n这里学习一下P-MOS和N-MOS导通的条件,前面后边都给我整糊涂了,这里记录一下,如下图为P-MOS和N-MOS导通时的电"
      },
      {
        "url": "/sdoc/peripheral/gpio/126b08e805ca1e15c40474c4.html",
        "relativePath": "/sdoc/20-基本外设篇/01-GPIO/LV020-GPIO控制LED.html",
        "frontmatter": {
          "title": "LV020-GPIO控制LED",
          "date": "2025-09-20 22:42:02",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/gpio/126b08e805ca1e15c40474c4",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "5c40474c47fc44e49114f4489f7fb359",
            "useduuid": "5c40474c4"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV020-GPIO控制LED",
        "date": "2025-09-20 22:42:02",
        "excerpt": "",
        "capture": "一、基本步骤\n这个实例主要是通过GPIO点亮LED灯。一般步骤如下:\n- (1)使能IO口时钟。\n- (2)初始化IO口模式,包括GPIO工作模式(输出)、IO口速度。使用STM32CubeMX软件来进行图形化配置的话要注意一下上下拉的设置,不然很可能有莫名其妙的坑。\n- (3)操作IO口,输出高低电平。\n【注意】可以一次初始化一个IO组下的多个IO,前提是这些IO口的配置方式一样。\n 二、硬件原理图\n&lt;img src=\"./LV020-GPIO控制LED/img/image-20230506221050587.png\" alt=\"image-20230506221050587\" sty"
      },
      {
        "url": "/sdoc/peripheral/gpio/126b08e8078f1f2b7ad1d6a6.html",
        "relativePath": "/sdoc/20-基本外设篇/01-GPIO/LV030-按键检测.html",
        "frontmatter": {
          "title": "LV030-按键检测",
          "date": "2025-09-20 22:46:55",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/gpio/126b08e8078f1f2b7ad1d6a6",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "b7ad1d6a65df41fab1ae6bd4b2de28b9",
            "useduuid": "b7ad1d6a6"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV030-按键检测",
        "date": "2025-09-20 22:46:55",
        "excerpt": "",
        "capture": "一、基本步骤\n- (1)使能IO口时钟。\n- (2)初始化IO口模式,包括GPIO工作模式(输入)、IO口速度。\n- (3)循环读取IO电平,判断按键是否按下。\n 二、硬件原理图\n&lt;img src=\"./LV030-按键检测/img/image-20230506221837788.png\" alt=\"image-20230506221837788\" style=\"zoom:50%;\" /\n 三、STM32CubeMX配置\n&lt;img src=\"./LV030-按键检测/img/image-20230506222110861.png\" alt=\"image-20230506222110"
      },
      {
        "url": "/sdoc/peripheral/gpio/126b08f58a5c2c09e1d6100f.html",
        "relativePath": "/sdoc/20-基本外设篇/01-GPIO/LV040-外部中断.html",
        "frontmatter": {
          "title": "LV040-外部中断",
          "date": "2025-09-21 11:01:08",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/gpio/126b08f58a5c2c09e1d6100f",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "9e1d6100f7d74737974bd9674a8ba8c0",
            "useduuid": "9e1d6100f"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV040-外部中断",
        "date": "2025-09-21 11:01:08",
        "excerpt": "",
        "capture": "&gt;\n&gt;- 10-基础篇/30-STM32的中断/LV001-STM32中断简介.md\n&gt;- 10-基础篇/01-概述/LV040-CortexM3异常.md\n 一、EXTI\n 1. 简介\nSTM32的中断和中断优先级,知道了所有外设中断都由NVIC管理,比如USART、 ADC、 I2C、 SPI等。 GPIO产生的中断也不例外,但在给NVIC管理之前,还有一个EXTI( External interrupt/event controller,外部中断/事件控制器) 先处理一下 :\n&lt;img src=\"./LV040-外部中断/img/image-20230501150"
      },
      {
        "url": "/sdoc/peripheral/gpio/126b08f596281cc89a3bc4c6.html",
        "relativePath": "/sdoc/20-基本外设篇/01-GPIO/LV045-外部中断实例.html",
        "frontmatter": {
          "title": "LV045-外部中断实例",
          "date": "2025-09-21 11:31:28",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/gpio/126b08f596281cc89a3bc4c6",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "89a3bc4c6a9b4249afce4152ca5d1241",
            "useduuid": "89a3bc4c6"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV045-外部中断实例",
        "date": "2025-09-21 11:31:28",
        "excerpt": "",
        "capture": "一、硬件原理图\n&lt;img src=\"./LV045-外部中断实例/img/image-20230501153706041.png\" alt=\"image-20230501153706041\" style=\"zoom: 67%;\" /\n 二、STM32CubeMX配置\n 1. GPIO引脚配置\n在STM32CubeMX软件中,我们选择好引脚后,GPIO的功能中会自动对应好与EXIT的关系,当然,我们也可以看 STM32中文参考手册的 9.2.5 外部中断/事件线路映像一节。\n(1)PA0 所接按键按下时为高电平,默认时我们设置为下拉,也就是默认时低电平:\n&lt;img src=\"./LV"
      },
      {
        "url": "/sdoc/peripheral/uart/126b08f60edb3b6ac7962cbf.html",
        "relativePath": "/sdoc/20-基本外设篇/10-UART/LV001-串口通信简介.html",
        "frontmatter": {
          "title": "LV001-串口通信简介",
          "date": "2025-09-21 14:40:27",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/uart/126b08f60edb3b6ac7962cbf",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "ac7962cbf7d245659539f5436bb59e37",
            "useduuid": "ac7962cbf"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV001-串口通信简介",
        "date": "2025-09-21 14:40:27",
        "excerpt": "",
        "capture": "一、数据通信\n在单片机的应用中,数据通信是必不可少的一部分,比如:单片机和上位机、单片机和外围器件之间,它们都有数据通信的需求。由于设备之间的电气特性、传输速率、可靠性要求各不相同,于是就有了各种通信类型、通信协议,我们最常的有: USART、 IIC、 SPI、 CAN、 USB等。\n 1. 数据通信方式\n按数据通信方式分类,可分为串行通信和并行通信两种。串行和并行的对比如下图所示:  \n串行通信的基本特征是数据逐位顺序依次传输,优点是传输线少、 布线成本低、 灵活度高等优点,一般用于近距离人机交互, 特殊处理后也可以用于远距离, 缺点就是传输速率低。而并行通信是数据各位可以通过多条线同时传"
      },
      {
        "url": "/sdoc/peripheral/uart/126b08f6146d2d238b102738.html",
        "relativePath": "/sdoc/20-基本外设篇/10-UART/LV010-STM32的串口.html",
        "frontmatter": {
          "title": "LV010-STM32的串口",
          "date": "2025-09-21 14:54:53",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/uart/126b08f6146d2d238b102738",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "38b1027380d146cb959e571687931c97",
            "useduuid": "38b102738"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV010-STM32的串口",
        "date": "2025-09-21 14:54:53",
        "excerpt": "",
        "capture": "一、STM32的串口\n 1. 概述\n在嵌入式中,很多MCU和外设模块都集成有UART外设。 STM32F103有3个通用同步异步收发器( Universal synchronous asynchronous receiver transmitter, USART), 2个通用异步收发器( Universalasynchronous receiver transmitter, UART) 。 USART和UART的主要区别在于, USART支持同步通信, 该模式有一根时钟线提供时钟。这里需要说明一下,由于在STM中文或者是英文参考手册,相关的介绍章节主要是关于USART,但是他们都是通用的,所以"
      },
      {
        "url": "/sdoc/peripheral/uart/126b08f61664097f4a0617fc.html",
        "relativePath": "/sdoc/20-基本外设篇/10-UART/LV020-串口收发实例.html",
        "frontmatter": {
          "title": "LV020-串口收发实例",
          "date": "2025-09-21 14:59:56",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/uart/126b08f61664097f4a0617fc",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "f4a0617fc94447a8962e262d9db98842",
            "useduuid": "f4a0617fc"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV020-串口收发实例",
        "date": "2025-09-21 14:59:56",
        "excerpt": "",
        "capture": "一、串口打印实现\n说明,这里使用STM32CubeM进行配置和导出工程。\n 1. 硬件设计\n我使用的是正点原子的战舰V3,串口部分电路如下,串口 1 与 USB 串口并没有在 PCB 上连接在一起,需要通过跳线帽来连接一下。这里我们把 P4 的 RXD 和 TXD 用跳线帽与 PA9 和 PA10 连接起来。  \n&lt;img src=\"./LV020-串口收发实例/img/image-20230502122716375.png\" alt=\"image-20230502122716375\" style=\"zoom: 67%;\" /\n 2. STM32CubeMX配置\n注意这里的时钟都没配置,"
      },
      {
        "url": "/sdoc/peripheral/timer/basic/126b08f6a8e32e3427f3a2b2.html",
        "relativePath": "/sdoc/20-基本外设篇/15-定时器/LV001-基本定时器简介.html",
        "frontmatter": {
          "title": "LV001-基本定时器简介",
          "date": "2025-09-21 18:34:59",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/timer/basic/126b08f6a8e32e3427f3a2b2",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "427f3a2b26fc476299e1f6f52f2c33ad",
            "useduuid": "427f3a2b2"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV001-基本定时器简介",
        "date": "2025-09-21 18:34:59",
        "excerpt": "",
        "capture": "一、基本定时器简介\n 1. STM32的基本定时器\nSTM32F103 有两个基本定时器 TIM6 和 TIM7,它们的功能完全相同,资源是完全独立的,可以同时使用。其主要特性如下: 16 位自动重载递增计数器, 16 位可编程预分频器,预分频系数 1\\~65536,用于对计数器时钟频率进行分频,还可以触发 DAC 的同步电路,以及生成中断/DMA 请求。  \n 2. 基本定时器框图  \n&lt;img src=\"./LV001-基本定时器简介/img/image-20240114083136570.png\" alt=\"image-20240114083136570\" style=\"zoom:"
      },
      {
        "url": "/sdoc/peripheral/timer/126b08f6aa441b536809798e.html",
        "relativePath": "/sdoc/20-基本外设篇/15-定时器/LV030-通用定时器简介.html",
        "frontmatter": {
          "title": "LV030-通用定时器简介",
          "date": "2025-09-21 18:38:12",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/timer/126b08f6aa441b536809798e",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "36809798e68046309b813b9706a23f8a",
            "useduuid": "36809798e"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV030-通用定时器简介",
        "date": "2025-09-21 18:38:12",
        "excerpt": "",
        "capture": "一、STM32的通用定时器\nSTM32F103 的通用定时器有 4 个,如下所示:  \n&lt;img src=\"./LV030-通用定时器简介/img/image-20240114085044691.png\" alt=\"image-20240114085044691\" /\n该表可以参考《STM32数据手册》的2.3.17 Timers and watchdogs小节。由上表知道: 该 STM32 芯片的计数器都是 16 位的。 通用定时器和高级定时器其实也就是在基本定时器的基础上,添加了一些其他功能,如: 输入捕获、 输出比较、输出 PWM 和单脉冲模式等。 而通用定时器数量较多,其特性也有"
      },
      {
        "url": "/sdoc/peripheral/timer/126b08f6aa9f293ebbce26b2.html",
        "relativePath": "/sdoc/20-基本外设篇/15-定时器/LV035-通用定时器的中断.html",
        "frontmatter": {
          "title": "LV035-通用定时器的中断",
          "date": "2025-09-21 18:39:03",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/timer/126b08f6aa9f293ebbce26b2",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "ebbce26b2eed4f0e8e7db13c33566c30",
            "useduuid": "ebbce26b2"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV035-通用定时器的中断",
        "date": "2025-09-21 18:39:03",
        "excerpt": "",
        "capture": "一、相关寄存器\n我们来学习使用通用定时器中断,学习 TIM2/TIM3/TIM4/TIM5 的几个与定时器中断相关且重要的寄存器。主要以定时器3为例。\n 1. 控制寄存器 1(TIMx_CR1)\nTIM2/TIM3/TIM4/TIM5 的控制寄存器 1 描述如图:\n&lt;img src=\"./LV035-通用定时器的中断/img/image-20240114094348633.png\" alt=\"image-20240114094348633\" style=\"zoom:50%;\" /\n上图中只截出了中断需要用的一些位,其中:  \n位 7(APRE)用于控制自动重载寄存器是否进行缓冲,如果 A"
      },
      {
        "url": "/sdoc/peripheral/timer/126b08f6aac20ab7bc66d777.html",
        "relativePath": "/sdoc/20-基本外设篇/15-定时器/LV040-通用定时器PWM输出.html",
        "frontmatter": {
          "title": "LV040-通用定时器PWM输出",
          "date": "2025-09-21 18:39:38",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/timer/126b08f6aac20ab7bc66d777",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "7bc66d777a344e838bab8b97634f96bc",
            "useduuid": "7bc66d777"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV040-通用定时器PWM输出",
        "date": "2025-09-21 18:39:38",
        "excerpt": "",
        "capture": "一、PWM产生原理\n脉冲宽度调制(PWM),是英文“Pulse Width Modulation”的缩写,简称脉宽调制,是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术。我们可以让定时器产生PWM,在计数器频率固定时, PWM 频率或者周期由自动重载寄存器(TIMx_ARR)的值决定,其占空比由捕获/比较寄存器(TIMx_CCRx)的值决定。 PWM 产生原理示意图如下图所示:  \n&lt;img src=\"./LV040-通用定时器PWM输出/img/image-20240114095044325.png\" alt=\"image-20240114095044325\" styl"
      },
      {
        "url": "/sdoc/peripheral/timer/126b08f6ab6404f5fdfb5648.html",
        "relativePath": "/sdoc/20-基本外设篇/15-定时器/LV045-通用定时器输入捕获.html",
        "frontmatter": {
          "title": "LV045-通用定时器输入捕获",
          "date": "2025-09-21 18:41:00",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/timer/126b08f6ab6404f5fdfb5648",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "5fdfb5648d1542adb31bc692aaebfac4",
            "useduuid": "5fdfb5648"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV045-通用定时器输入捕获",
        "date": "2025-09-21 18:41:00",
        "excerpt": "",
        "capture": "一、脉宽测量基本原理\n输入捕获模式可以用来测量脉冲宽度或者测量频率。我们以测量脉宽为例,用一个简图来说明输入捕获脉宽测量原理:\n&lt;img src=\"./LV045-通用定时器输入捕获/img/image-20240114103053113.png\" alt=\"image-20240114103053113\" style=\"zoom: 33%;\" /\nt1 到 t2 的时间段,就是我们需要测量的高电平时间。测量方法如下:假如定时器工作在递增计数模式,首先设置定时器通道 x 为上升沿捕获,这样在 t1 时刻上升沿到来时,就会发生捕获事件。这里我们还会打开捕获中断,所以捕获事件发生就意味着捕获"
      },
      {
        "url": "/sdoc/peripheral/timer/126b08f6ab873bc74e57e381.html",
        "relativePath": "/sdoc/20-基本外设篇/15-定时器/LV050-通用定时器脉冲计数.html",
        "frontmatter": {
          "title": "LV050-通用定时器脉冲计数",
          "date": "2025-09-21 18:41:35",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/timer/126b08f6ab873bc74e57e381",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "74e57e3815ac43a9b2ad64b853530fde",
            "useduuid": "74e57e381"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV050-通用定时器脉冲计数",
        "date": "2025-09-21 18:41:35",
        "excerpt": "",
        "capture": "前面我们介绍了通用定时器的四类时钟源,这一节我们来学习使用通用定时器的外部时钟模式 1 这类时钟源。我们通过脉冲计数实验来学习。\n 一、需求说明\n前面的三个通用定时器实验的时钟源都是来自内部时钟 (CK_INT),在脉冲计数的使用中我们将使用外部时钟模式 1:外部输入引脚 (TIx)作为定时器的时钟源。关于这个外部输入引脚(TIx),我们使用 WK_UP 按键按下产生的高电平脉冲作为定时器的计数器时钟,每按下一次按键产生一次高电平脉冲,计数器加一。  \n 二、定时器资源说明\n&lt;img src=\"./LV050-通用定时器脉冲计数/img/image-20240114104935667.p"
      },
      {
        "url": "/sdoc/peripheral/timer/126b08f6abf821065c6674f2.html",
        "relativePath": "/sdoc/20-基本外设篇/15-定时器/LV070-高级定时器简介.html",
        "frontmatter": {
          "title": "LV070-高级定时器简介",
          "date": "2025-09-21 18:42:48",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/timer/126b08f6abf821065c6674f2",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "65c6674f24194a5c905c5931e3b1bb25",
            "useduuid": "65c6674f2"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV070-高级定时器简介",
        "date": "2025-09-21 18:42:48",
        "excerpt": "",
        "capture": "从这一节开始主要来学习高级定时器, STM32F103 有 2 个高级定时器(TIM1 和 TIM8)。将会通过四个实验来学习高级定时器的各个功能,分别是高级定时器输出指定个数 PWM 实验、高级定时器输出比较模式实验、高级定时器互补输出带死区控制实验和高级定时器 PWM 输入模式实验。  \n 一、高级定时器框图\n高级定时器的框图和通用定时器框图很类似,只是添加了其它的一些功能,如:重复计数器、带死区控制的互补输出通道、断路输入等。这些功能在高级定时器框图的位置如下:  \n&lt;img src=\"./LV070-高级定时器简介/img/image-20240114124949607.png\""
      },
      {
        "url": "/sdoc/peripheral/timer/126b08f6ac4f2bb02b42403e.html",
        "relativePath": "/sdoc/20-基本外设篇/15-定时器/LV075-高级定时器PWM输出.html",
        "frontmatter": {
          "title": "LV075-高级定时器PWM输出",
          "date": "2025-09-21 18:43:35",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/timer/126b08f6ac4f2bb02b42403e",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "02b42403e6334b1e88b3aefe535488bf",
            "useduuid": "02b42403e"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV075-高级定时器PWM输出",
        "date": "2025-09-21 18:43:35",
        "excerpt": "",
        "capture": "一、基本原理\n要实现定时器输出指定个数 PWM,只需要掌握下面几点内容:\n- 第一,定时器是如何输出 PWM 的,这部分的知识和前面是一样的。但是需要注意的是:我们需要把 MOE 位置 1,这样高级定时器的通道才能输出。\n- 第二,要清楚重复计数器特性,设置重复计数器寄存器 RCR 的值为 N,那么更新事件将在定时器发生 N+1 次上溢或下溢时发生。换句话来说就是,想要指定输出 N 个 PWM,只需要把N-1 写入 RCR 寄存器。因为在边沿对齐模式下,定时器溢出周期对应着 PWM 周期,我们只要在更新事件发生时,停止输出 PWM 就行。\n- 第三,为了保证定时器输出指定个数的 PWM 后,定"
      },
      {
        "url": "/sdoc/peripheral/timer/126b08f6aca0253099c9ba29.html",
        "relativePath": "/sdoc/20-基本外设篇/15-定时器/LV080-高级定时器输出比较模式.html",
        "frontmatter": {
          "title": "LV080-高级定时器输出比较模式",
          "date": "2025-09-21 18:44:16",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/timer/126b08f6aca0253099c9ba29",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "099c9ba29781487ab77ef3977ecd7122",
            "useduuid": "099c9ba29"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV080-高级定时器输出比较模式",
        "date": "2025-09-21 18:44:16",
        "excerpt": "",
        "capture": "一、输出比较模式输出PWM\n我们来学习使用高级定时器输出比较模式下翻转功能,通过定时器 4 个通道分别输出 4 个 50%占空比、不同相位的 PWM。\n输出比较模式下翻转功能作用是:当计数器的值等于捕获/比较寄存器影子寄存器的值时,OC1REF 发生翻转,进而控制通道输出(OCx)翻转。通过翻转功能实现输出 PWM 的具体原理如下: PWM 频率由自动重载寄存器(TIMx_ARR)的值决定,在这个过程中,只要自动重载寄存器的值不变,那么 PWM 占空比就固定为 50%。我们可以通过捕获/比较寄存器(TIMx_CCRx)的值改变 PWM 的相位。生成 PWM 的原理如图 :\n&lt;img sr"
      },
      {
        "url": "/sdoc/peripheral/timer/126b08f6ad8f2e0487d6c438.html",
        "relativePath": "/sdoc/20-基本外设篇/15-定时器/LV085-高级定时器互补输出.html",
        "frontmatter": {
          "title": "LV085-高级定时器互补输出",
          "date": "2025-09-21 18:46:55",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/timer/126b08f6ad8f2e0487d6c438",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "487d6c4384224a459898d149b83609e0",
            "useduuid": "487d6c438"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV085-高级定时器互补输出",
        "date": "2025-09-21 18:46:55",
        "excerpt": "",
        "capture": "一、基本概念\n什么是互补输出?还带死区控制?  我们来简单了解一下。关于互补输出和死区插入的更多内容可以看《STM32F10xxx 参考手册_V10(中文版) .pdf》手册的 13.3.11 小节 。\n 1. 互补输出\n&lt;img src=\"./LV085-高级定时器互补输出/img/image-20240114131925473.png\" alt=\"image-20240114131925473\" style=\"zoom:50%;\" /\n&lt;p align=\"center\"&gt;\n    图一-1 互补输出\n&lt;/p&gt;\n上图中, CH1 输出黄色的 PWM,它的互补通道"
      },
      {
        "url": "/sdoc/peripheral/timer/126b08f6ae2512a51a9eec42.html",
        "relativePath": "/sdoc/20-基本外设篇/15-定时器/LV090-高级定时器PWM输入.html",
        "frontmatter": {
          "title": "LV090-高级定时器PWM输入",
          "date": "2025-09-21 18:48:05",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/timer/126b08f6ae2512a51a9eec42",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "51a9eec423e4412c99aa8247ccd2092d",
            "useduuid": "51a9eec42"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV090-高级定时器PWM输入",
        "date": "2025-09-21 18:48:05",
        "excerpt": "",
        "capture": "本小节我们来学习使用高级定时器 PWM 输入模式, 此模式是输入捕获模式的一个特例。PWM 输入模式经常被应用于测量 PWM 脉宽和频率。 PWM 输入模式在《STM32F10xxx 参考手册_V10(中文版) .pdf》 手册 216 页有详细的文字描述。\n 一、工作原理\n&lt;img src=\"./LV090-高级定时器PWM输入/img/image-20240114135116438.png\" alt=\"image-20240114135116438\" style=\"zoom:50%;\" /\n第一,确定定时器时钟源。本实验中我们使用内部时钟(CK_INT), F1 系列高级定时器挂载在"
      },
      {
        "url": "/sdoc/peripheral/timer/126b08f7176d34627620ad1b.html",
        "relativePath": "/sdoc/20-基本外设篇/15-定时器/LV100-SysTick定时器简介.html",
        "frontmatter": {
          "title": "LV100-SysTick定时器简介",
          "date": "2025-09-21 21:17:57",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/timer/126b08f7176d34627620ad1b",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "27620ad1b6704f3ab64b6bc4d14b88f4",
            "useduuid": "27620ad1b"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV100-SysTick定时器简介",
        "date": "2025-09-21 21:17:57",
        "excerpt": "",
        "capture": "这一部分我们可以查看Cortex-M3 权威指南的 第8章NVIC与中断控制 中的 SysTick定时器  小节。\n 一、SysTick定时器简介\nSysTick定时器(又名系统滴答定时器)是存在于Cortex-M3的一个定时器,只要是ARM Cotex-M系列内核的MCU都包含这个定时器。使用内核的SysTick定时器来实现延时,可以不占用系统定时器,节约资源。由于SysTick是在CPU核内部实现的,跟MCU外设无关, 因此它的代码可以在不同厂家之间移植。  \nSysTick定时器被捆绑在NVIC中,用于产生SYSTICK异常(异常号: 15)。在以前,大多操作系统需要一个硬件定时器来产生"
      },
      {
        "url": "/sdoc/peripheral/timer/126b08f71bb31f61f9e3c819.html",
        "relativePath": "/sdoc/20-基本外设篇/15-定时器/LV105-自定义延时函数.html",
        "frontmatter": {
          "title": "LV105-自定义延时函数",
          "date": "2025-09-21 21:28:51",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/timer/126b08f71bb31f61f9e3c819",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "1f9e3c81978544cfa5b36e225514bb0d",
            "useduuid": "1f9e3c819"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV105-自定义延时函数",
        "date": "2025-09-21 21:28:51",
        "excerpt": "",
        "capture": "在20-基本外设篇/15-定时器/LV105-自定义延时函数.md中我们分析了HAL库中的HAL_Delay()函数,它是借助SysTick定时器的中断来实现的,就意味着不能在其他中断中使用这个延时函数,那么有没有其他办法实现延时?\n 一、时钟摘取法  \n我们来看一下正点原子SYSTEM目录下的delay.c中的delay_us函数。\n 1. delay_init()\n在main函数中是这样调用的:\n```c\ndelay_init(72);\n```\n这个函数的定义(删除了OS相关的内容)如下:\n```c\n/**\n * @brief     初始化延迟函数\n * @param     syscl"
      },
      {
        "url": "/sdoc/peripheral/watchdog/126b09043ae916195cb39541.html",
        "relativePath": "/sdoc/20-基本外设篇/20-看门狗/LV001-看门狗简介.html",
        "frontmatter": {
          "title": "LV001-看门狗简介",
          "date": "2025-09-22 07:28:09",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/watchdog/126b09043ae916195cb39541",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "95cb3954118d49beb6d6912a9e3cb522",
            "useduuid": "95cb39541"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV001-看门狗简介",
        "date": "2025-09-22 07:28:09",
        "excerpt": "",
        "capture": "一、看门狗简介\n 1. 简介\n在由单片机构成的微型计算机系统中,由于单片机的工作常常会受到来自外界电磁场的干扰,造成程序的跑飞,而陷入死循环,程序的正常运行被打断,由单片机控制的系统无法继续工作,会造成整个系统的陷入停滞状态,发生不可预料的后果,所以出于对单片机运行状态进行实时监测的考虑,便产生了一种专门用于监测单片机程序运行状态的模块或者芯片,俗称“看门狗”(watchdog) 。\n看门狗主要用于解决什么问题呢?在启动正常运行的时候,系统不能复位。在系统跑飞(程序异常执行)的情况,系统复位,程序重新执行。看门狗的本质也是一个定时器,在启动后,需要在一定时间内再给它一个信号,俗称“喂狗”,如果"
      },
      {
        "url": "/sdoc/peripheral/watchdog/126b09043c29000296442c6e.html",
        "relativePath": "/sdoc/20-基本外设篇/20-看门狗/LV010-看门狗使用实例.html",
        "frontmatter": {
          "title": "LV010-看门狗使用实例",
          "date": "2025-09-22 07:31:29",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/watchdog/126b09043c29000296442c6e",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "296442c6e9ba4600b39cd12075ea87af",
            "useduuid": "296442c6e"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV010-看门狗使用实例",
        "date": "2025-09-22 07:31:29",
        "excerpt": "",
        "capture": "一、独立看门狗\n 1. 硬件设计\n独立看门狗属于 STM32F1 的内部资源,只需要软件设置好即可正常工作。我们通过LED灯来指示 STM32F1 的复位情况来看指示独立看门狗的喂狗情况。\n 2. STM32CubeMX配置  \n 2.1 IWDG配置\n&lt;img src=\"./LV010-看门狗使用实例/img/image-20230513193914903.png\" alt=\"image-20230513193914903\" style=\"zoom:80%;\" /\n独立看门狗的配置时间比较简单:\n①、选择IWDG;\n②、勾选Activated,表示启用独立看门狗;\n③、看门狗的时钟分频"
      },
      {
        "url": "/sdoc/peripheral/fsmc/fsmc-basic/126b092492553b23e8704ba7.html",
        "relativePath": "/sdoc/20-基本外设篇/25-FSMC/01-FSMC基础/LV001-FSMC简介.html",
        "frontmatter": {
          "title": "LV001-FSMC简介",
          "date": "2025-09-24 19:23:41",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/fsmc/fsmc-basic/126b092492553b23e8704ba7",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "3e8704ba79214a3cbb9ab231d637b62e",
            "useduuid": "3e8704ba7"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV001-FSMC简介",
        "date": "2025-09-24 19:23:41",
        "excerpt": "",
        "capture": "这一部分我们可以参考 STM32中文参考手册的 19 灵活的静态存储器控制器(FSMC) 一节。\n 一、FSMC简介\n 1. 什么是FSMC\nFSMC,Flexible static memory controller,即灵活的静态存储控制器,能够与同步或异步存储器和 16 位 PC 存储器卡连接,STM32F1 的 FSMC 接口支持包括 SRAM、 NAND FLASH、 NOR FLASH 和 PSRAM 等存储器,但是不能驱动如SDRAM这种动态的存储器。  而在STM32F429系列的控制器中,它具有FMC外设,支持控制SDRAM存储器。\nSTM32F103ZET6的内部有64KB的"
      },
      {
        "url": "/sdoc/peripheral/fsmc/fsmc-basic/126b092499b000721416c9a0.html",
        "relativePath": "/sdoc/20-基本外设篇/25-FSMC/01-FSMC基础/LV005-存储器映射与控制器.html",
        "frontmatter": {
          "title": "LV005-存储器映射与控制器",
          "date": "2025-09-24 19:42:24",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/fsmc/fsmc-basic/126b092499b000721416c9a0",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "21416c9a03d8478188e3897a2c59aa5e",
            "useduuid": "21416c9a0"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV005-存储器映射与控制器",
        "date": "2025-09-24 19:42:24",
        "excerpt": "",
        "capture": "一、存储器映射?\n 1. 直接访问地址?\nFSMC连接好外部的存储器并初始化后,就可以直接通过访问地址来读写数据。FSMC访问存储器的方式与I2C EEPROM、SPI FLASH的不一样,后两种方式都需要控制I2C或SPI总线给存储器发送地址,然后获取数据;在程序里,这个地址和数据都需要分开使用不同的变量存储,并且访问时还需要使用代码控制发送读写命令。而使用FSMC外接存储器时,其存储单元是映射到STM32的内部寻址空间的;在程序里,定义一个指向这些地址的指针,然后就可以通过指针直接修改该存储单元的内容,FSMC外设会自动完成数据访问过程,读写命令之类的操作不需要程序控制。\n 2. FSMC"
      },
      {
        "url": "/sdoc/peripheral/fsmc/fsmc-basic/126b0924b19533081adda526.html",
        "relativePath": "/sdoc/20-基本外设篇/25-FSMC/01-FSMC基础/LV010-相关HAL库函数.html",
        "frontmatter": {
          "title": "LV010-相关HAL库函数",
          "date": "2025-09-24 20:03:41",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/fsmc/fsmc-basic/126b0924b19533081adda526",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "81adda5266e04132bfcad67ecceec69d",
            "useduuid": "81adda526"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV010-相关HAL库函数",
        "date": "2025-09-24 20:03:41",
        "excerpt": "",
        "capture": "一、库中的寄存器\n在 MDK 的寄存器定义里面,并没有定义 FSMC_BCRx、 FSMC_BTRx、 FSMC_BWTRx 等这个单独的寄存器,而是将他们进行了一些组合。FSMC_BCRx 和 FSMC_BTRx,组合成 BTCR[8]寄存器组,他们的对应关系如下:  \n```c\nBTCR[0]---\nBTCR[2]---&gt;FSMC_BCR2, BTCR[3]---&gt;FSMC_BTR2\nBTCR[4]---&gt;FSMC_BCR3, BTCR[5]---&gt;FSMC_BTR3\nBTCR[6]---&gt;FSMC_BCR4, BTCR[7]---&gt;FSMC_BTR4\n"
      },
      {
        "url": "/sdoc/peripheral/fsmc/sram/126b09248e5b007fcadf7acc.html",
        "relativePath": "/sdoc/20-基本外设篇/25-FSMC/05-外部SRAM/LV001-概述.html",
        "frontmatter": {
          "title": "LV001-概述",
          "date": "2025-09-24 19:13:23",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/fsmc/sram/126b09248e5b007fcadf7acc",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "fcadf7accc90458fa4cab2cebf963be3",
            "useduuid": "fcadf7acc"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV001-概述",
        "date": "2025-09-24 19:13:23",
        "excerpt": "",
        "capture": "一、什么是SRAM\n这个参考:10-基础篇/01-概述/LV010-常见存储器.md\n 二、为什么要扩展SRAM?\nSTM32控制器芯片内部有一定大小的SRAM及FLASH作为内存和程序存储空间,程序下载的时候是存放在内部的FLASH中的,在程序运行过程中,会有一些变量或者其他的东西存放在SRAM中运行,这就跟我们PC电脑上的内存一样。当程序较大,内存和程序空间不足时,就需要在STM32芯片的外部扩展存储器了。STM32F103ZE系列芯片可以扩展外部SRAM用作内存。\n给STM32芯片扩展内存与给PC扩展内存的原理是一样的,只是PC上一般以内存条的形式扩展,而且内存条实质是由多个内存颗粒(即"
      },
      {
        "url": "/sdoc/peripheral/fsmc/sram/126b09248ce51200a79d393f.html",
        "relativePath": "/sdoc/20-基本外设篇/25-FSMC/05-外部SRAM/LV002-XM8A51216简介.html",
        "frontmatter": {
          "title": "LV002-XM8A51216简介",
          "date": "2025-09-24 19:09:49",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/fsmc/sram/126b09248ce51200a79d393f",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "0a79d393fee944b89889bdacfda6ea95",
            "useduuid": "0a79d393f"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV002-XM8A51216简介",
        "date": "2025-09-24 19:09:49",
        "excerpt": "",
        "capture": "一、简介\nXM8A51216 是深圳星忆存储科技有限公司(星忆存储 )生产的一颗 16 位宽 512K(512*16,即 1M 字节)容量的 CMOS 静态内存芯片。我们可以在这里找到它的芯片手册:。该芯片具有如下几个特点 :\n(1)高速。 具有最高访问速度 10/12ns。\n(2)低功耗。\n(3)TTL 电平兼容。\n(4)全静态操作。不需要刷新和时钟电路。\n(5)三态输出。\n(6)字节控制功能。支持高/低字节控制。  \n 二、功能框图\n功能框图我们可以看 XM8A51216V33(8M).pdf (xingmem.com).pdf) 的 Logic Block Diagram:\n&lt;im"
      },
      {
        "url": "/sdoc/peripheral/fsmc/sram/126b09248db61d861c837fd7.html",
        "relativePath": "/sdoc/20-基本外设篇/25-FSMC/05-外部SRAM/LV005-IS62WV51216简介.html",
        "frontmatter": {
          "title": "LV005-IS62WV51216简介",
          "date": "2025-09-24 19:11:58",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/fsmc/sram/126b09248db61d861c837fd7",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "61c837fd7bf24e47b455ebbf97c03db7",
            "useduuid": "61c837fd7"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV005-IS62WV51216简介",
        "date": "2025-09-24 19:11:58",
        "excerpt": "",
        "capture": "一、简介\n IS62WV51216是ISSI(Integrated Silicon Solution, Inc)公司生产的一颗16位宽512K(512\\*16,即1M字节)容量的CMOS静态内存(SRAM)芯片。开发板上使用的完整的型号是 IS62WV51216BLL,它有以下特点:\n(1)高速。具有45ns/55ns访问速度。\n(2)低功耗。操作时:36mW;待机时:12uW。\n(3)兼容TTL电平。\n(4)全静态操作。不需要刷新和时钟电路。 \n(5)三态输出。\n(6)字节控制功能。支持高/低字节控制。\n 二、引脚说明\n&lt;img src=\"./LV005-IS62WV51216简介/i"
      },
      {
        "url": "/sdoc/peripheral/fsmc/sram/126b0924b2d20263b97733d0.html",
        "relativePath": "/sdoc/20-基本外设篇/25-FSMC/05-外部SRAM/LV015-外部SRAM读写实例.html",
        "frontmatter": {
          "title": "LV015-外部SRAM读写实例",
          "date": "2025-09-24 20:06:58",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/fsmc/sram/126b0924b2d20263b97733d0",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "3b97733d0c5f43148008ceafa2203f32",
            "useduuid": "3b97733d0"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV015-外部SRAM读写实例",
        "date": "2025-09-24 20:06:58",
        "excerpt": "",
        "capture": "一、硬件原理图\n我使用的是正点原子战舰V3的板子,硬件连接如下图:\n&lt;img src=\"./LV015-外部SRAM读写实例/img/image-20230503175021794.png\" alt=\"image-20230503175021794\" style=\"zoom:50%;\" /\n 二、STM32CubeMX配置\n这里只关心FSMC的配置,其他的可以看前边的笔记。\n 1. FSMC配置\n 1.1 模式选择\n&lt;img src=\"./LV015-外部SRAM读写实例/img/image-20230515064458738.png\" alt=\"image-20230515064"
      },
      {
        "url": "/sdoc/peripheral/i2c/126b09344c01323883ac1ab4.html",
        "relativePath": "/sdoc/20-基本外设篇/30-I2C/LV001-STM32的I2C.html",
        "frontmatter": {
          "title": "LV001-STM32的I2C",
          "date": "2025-09-25 22:29:13",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/i2c/126b09344c01323883ac1ab4",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "883ac1ab454e45c8903061818823ca7f",
            "useduuid": "883ac1ab4"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV001-STM32的I2C",
        "date": "2025-09-25 22:29:13",
        "excerpt": "",
        "capture": "一、I2C简介\n这一部分可以查看笔记60-通信专题/01-I2C协议/LV001-I2C简介.md,这篇笔记主要是关于I2C的物理层协议,读写时序以及各个信号的说明包括对各信号的模拟。\n 二、STM32的物理I2C\n 1. 物理I2C框图\n这一部分我们可以查看STM32中文参考手册的24 I2C接口一节:\n&lt;img src=\"./LV001-STM32的I2C/img/image-20230507110330416.png\" alt=\"image-20230507110330416\" style=\"zoom:50%;\" /\n 2. ①通信引脚\n通信引脚在框图中有三根:\n(1)SDA——数"
      },
      {
        "url": "/sdoc/peripheral/i2c/126b09344d8f021f00cacd6c.html",
        "relativePath": "/sdoc/20-基本外设篇/30-I2C/LV010-AT24C02简介.html",
        "frontmatter": {
          "title": "LV010-AT24C02简介",
          "date": "2025-09-25 22:33:11",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/i2c/126b09344d8f021f00cacd6c",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "f00cacd6ccbd4a459325107dc47b447a",
            "useduuid": "f00cacd6c"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV010-AT24C02简介",
        "date": "2025-09-25 22:33:11",
        "excerpt": "",
        "capture": "一、EEPROM简介\nEEPROM (Electrically Erasable Programmable read only memory)是指带电可擦可编程只读存储器。是一种掉电后数据不丢失的存储芯片。 EEPROM 可以在电脑上或专用设备上擦除已有信息,重新编程。一般用在即插即用。\n我们这一节的笔记主要是关于AT24C02的使用,它是一个串行电可擦除和可编程只读存储器(EEPROM),总容量是256(2K/8)个字节,通过IIC通信。它是 Atmel 公司的一款芯片,我们我使用的战舰V3的开发板上时AT24C02BN,我们可以在这里找到它的数据手册:AT24C01A/02/04/08/1"
      },
      {
        "url": "/sdoc/peripheral/i2c/126b09344f37186302faabd7.html",
        "relativePath": "/sdoc/20-基本外设篇/30-I2C/LV015-AT24C02使用实例.html",
        "frontmatter": {
          "title": "LV015-AT24C02使用实例",
          "date": "2025-09-25 22:37:35",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/i2c/126b09344f37186302faabd7",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "302faabd7f05494cbdcffb39c1c91164",
            "useduuid": "302faabd7"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV015-AT24C02使用实例",
        "date": "2025-09-25 22:37:35",
        "excerpt": "",
        "capture": "一、硬件原理图\n&lt;img src=\"./LV015-AT24C02使用实例/img/image-20230507133622454.png\" alt=\"image-20230507133622454\" style=\"zoom:50%;\" /\n可以看到这里的AT24C02接在了PB6和PB7,也就是I2C1上边。\n 二、物理I2C读写AT24C02\n一般步骤如下:\n(1)配置通讯使用的目标引脚为开漏模式;\n(2)使能 I2C 外设的时钟;\n(3)配置 I2C 外设的模式、地址、速率等参数并使能 I2C 外设;\n(4)编写基本 I2C 按字节收发的函数;  \n(5)编写读写 EEPROM 存"
      },
      {
        "url": "/sdoc/peripheral/spi/126b0950f4ae14889c830ae3.html",
        "relativePath": "/sdoc/20-基本外设篇/35-SPI/LV001-STM32的SPI.html",
        "frontmatter": {
          "title": "LV001-STM32的SPI",
          "date": "2025-09-27 10:11:02",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/spi/126b0950f4ae14889c830ae3",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "89c830ae3a594952be17b5abc6bbb737",
            "useduuid": "89c830ae3"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV001-STM32的SPI",
        "date": "2025-09-27 10:11:02",
        "excerpt": "",
        "capture": "一、SPI简介\n这一部分可以查看笔记《60-通信专题/30-SPI/LV001-SPI简介.md》。\n 二、STM32的SPI外设\n 1. 简介\nSTM32 的 SPI 外设可用作通讯的主机及从机,支持最高的 SCK 时钟频率为 fpclk/2 (STM32F103 型号的芯片默认 f:sub:pclk1 为 36MHz, fpclk2 为72MHz),完全支持 SPI 协议的 4 种模式,数据帧长度可设置为 8 位或 16 位,可设置数据 MSB 先行或 LSB 先行。它还支持双线全双工、双线单向以及单线模式。其中双线单向模式可以同时使用 MOSI 及 MISO 数据线向一个方向传输数据,可"
      },
      {
        "url": "/sdoc/peripheral/spi/126b0950f64a0b5a3fbcba93.html",
        "relativePath": "/sdoc/20-基本外设篇/35-SPI/LV010-W25QXXX简介.html",
        "frontmatter": {
          "title": "LV010-W25QXXX简介",
          "date": "2025-09-27 10:15:14",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/spi/126b0950f64a0b5a3fbcba93",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "a3fbcba93d1642329a28cddcb65ad8e8",
            "useduuid": "a3fbcba93"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV010-W25QXXX简介",
        "date": "2025-09-27 10:15:14",
        "excerpt": "",
        "capture": "一、简介\nEEPROM和Flash的本质上是一样的, 都用于保存数据,Flash包括MCU内部的Flash和外部扩展的Flash,我使用的开发板的W25Q128就是一个SPI接口的外部NOR Flash。从功能上, Flash通常存放运行代码,运行过程中不会修改,而EEPROM存放用户数据,可能会反复修改。 从结构上, Flash按扇区操作, EEPROM通常按字节操作。  \nW25Q128是华邦的一款SPI接口 NOR FLASH 芯片,我看我使用的开发板上使用的型号是W25Q128JV,我们可以在这里找到它的芯片手册:W25Q128JV-datasheet。\n我们看芯片手册的开头,有这么几"
      },
      {
        "url": "/sdoc/peripheral/spi/126b0950f849211ff053e7ff.html",
        "relativePath": "/sdoc/20-基本外设篇/35-SPI/LV015-SPI读写W25QXXX实例.html",
        "frontmatter": {
          "title": "LV015-SPI读写W25QXXX实例",
          "date": "2025-09-27 10:20:25",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/spi/126b0950f849211ff053e7ff",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "ff053e7ff3e247358beec3bab1ba61de",
            "useduuid": "ff053e7ff"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV015-SPI读写W25QXXX实例",
        "date": "2025-09-27 10:20:25",
        "excerpt": "",
        "capture": "一、一般步骤\n通过SPI读写外部FLASH的一般步骤如下:\n(1)初始化通讯使用的目标引脚及端口时钟;\n(2)使能 SPI 外设的时钟;\n(3)配置 SPI 外设的模式、地址、速率等参数并使能 SPI 外设;\n(4)编写基本 SPI 按字节收发的函数;\n(5)编写对 FLASH 擦除及读写操作的的函数;\n(6)编写测试程序,对读写数据进行校验。  \n 二、硬件原理图\n&lt;img src=\"./LV015-SPI读写W25QXXX实例/img/image-20230507205517724.png\" alt=\"image-20230507205517724\" style=\"zoom:50%;"
      },
      {
        "url": "/sdoc/peripheral/dma/126b0950fbc52669af52caac.html",
        "relativePath": "/sdoc/20-基本外设篇/40-DMA/LV001-DMA简介.html",
        "frontmatter": {
          "title": "LV001-DMA简介",
          "date": "2025-09-27 10:29:17",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/dma/126b0950fbc52669af52caac",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "9af52caac91c42b1b28d2e09c22f8d43",
            "useduuid": "9af52caac"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV001-DMA简介",
        "date": "2025-09-27 10:29:17",
        "excerpt": "",
        "capture": "一、DMA简介\n 1. 简介\nDMA,即 Direct Memory Access,直接存储器访问。是单片机的一个外设,它的主要功能是用来搬数据,但是不需要占用 CPU,即在传输数据的时候, CPU 可以干其他的事情,好像是多线程一样。数据传输支持从外设到存储器或者存储器到存储器,这里的存储器可以是 SRAM 或者是 FLASH。\n我们知道CPU根据代码内容执行指令,这些众多指令中,有的用于计算、有的用于控制程序、有的用于转移数据等。 其中转移数据的指令,尤其是转移大量数据,会占用大量CPU资源。  例如把外设A的数据,传给外设B,这种情况其实不需要CPU一直参与,只需在A、 B之间创建个通道"
      },
      {
        "url": "/sdoc/peripheral/dma/126b0950fc960317c7b64826.html",
        "relativePath": "/sdoc/20-基本外设篇/40-DMA/LV010-DMA使用实例.html",
        "frontmatter": {
          "title": "LV010-DMA使用实例",
          "date": "2025-09-27 10:31:26",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/dma/126b0950fc960317c7b64826",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "7c7b6482620b4698a5eac4b6e449f631",
            "useduuid": "7c7b64826"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV010-DMA使用实例",
        "date": "2025-09-27 10:31:26",
        "excerpt": "",
        "capture": "这里的实例都是通过STM32CubeMX软件进行配置。\n 一、存储器到存储器\nFLASH to SRAM,把内部FLASH的数据传输到内部的SRAM。在这里相当于将FLASH当做外设,将SRAM作为存储器,将数据从外设传输到存储器  。一般步骤如下:\n(1)使能 DMA 时钟;\n(2)配置 DMA 数据参数;\n(3)使能 DMA,进行传输;\n(4)等待传输完成,并对源数据和目标地址数据进行比较。  \n 1. STM32CubeMX配置\n&lt;img src=\"./LV010-DMA使用实例/img/image-20230505195655829.png\" alt=\"image-2023050"
      },
      {
        "url": "/sdoc/peripheral/sdio/126b0950fe110bc81c4d2fd3.html",
        "relativePath": "/sdoc/20-基本外设篇/50-SDIO/LV001-SD卡简介.html",
        "frontmatter": {
          "title": "LV001-SD卡简介",
          "date": "2025-09-27 10:35:05",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/sdio/126b0950fe110bc81c4d2fd3",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "81c4d2fd3b3049a1a63dd12e12b5a3fa",
            "useduuid": "81c4d2fd3"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV001-SD卡简介",
        "date": "2025-09-27 10:35:05",
        "excerpt": "",
        "capture": "这篇笔记主要看的是文档 Physical Layer Simplified Specification v9.0 ,但其实应该看文档Physical Layer Simplified Specification v2.0可能会更好一些,虽然他们基本是一样的(因为后边好像说是STM32做多支持到2.0版本的SD卡)。\n 一、SD卡简介\n 1. 什么是SD卡?\n SD卡(Secure Digital Memory Card)即:安全数码卡,它是在MMC的基础上发展而来,是一种基于半导体快闪记忆器的新一代记忆设备,是SD协会开发的一种专有 的非易失性 存储卡格式,用于便携式设备。由于它体积小、数据传"
      },
      {
        "url": "/sdoc/peripheral/sdio/126b0950ff013d660d235356.html",
        "relativePath": "/sdoc/20-基本外设篇/50-SDIO/LV015-SD卡的操作.html",
        "frontmatter": {
          "title": "LV015-SD卡的操作",
          "date": "2025-09-27 10:37:45",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/sdio/126b0950ff013d660d235356",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "60d235356a8a41c6b5be0b1b1d22ed03",
            "useduuid": "60d235356"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV015-SD卡的操作",
        "date": "2025-09-27 10:37:45",
        "excerpt": "",
        "capture": "一、SD卡命令\nSD命令由主机发出,以广播命令和寻址命令为例,广播命令是针对与SD主机总线连接的所有从设备发送的,寻址命令是指定某个地址设备进行命令传输。这一章的内容我们可以参考文档 Physical Layer Simplified Specification v9.0 的 4.7 Commands  章节。 \n 1. 命令格式\nSD命令格式固定为48bit,都是通过CMD线连续传输的, 数据线不参与。  \n&lt;img src=\"./LV015-SD卡的操作/img/image-20230510194931239.png\" alt=\"image-20230510194931239\" st"
      },
      {
        "url": "/sdoc/peripheral/sdio/126b0951000d2a75b964fa55.html",
        "relativePath": "/sdoc/20-基本外设篇/50-SDIO/LV020-STM32的SDIO.html",
        "frontmatter": {
          "title": "LV020-STM32的SDIO",
          "date": "2025-09-27 10:40:13",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/sdio/126b0951000d2a75b964fa55",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "5b964fa55b1c49f2849632ac18e58758",
            "useduuid": "5b964fa55"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV020-STM32的SDIO",
        "date": "2025-09-27 10:40:13",
        "excerpt": "",
        "capture": "本篇文档再看SD卡规范的时候就以文档Physical Layer Simplified Specification v2.0为主啦,因为STM32最高只支持2.0协议的SD卡。\n 一、SDIO简介\n 1. 简介\nSDIO,全称: Secure Digital Input and Output ,即安全数字输入输出接口。它是在SD卡接口的基础上发展而来,它可以兼容之前的SD卡,并可以连接SDIO接口设备,比如:蓝牙、WIFI、照相机等。\nSDIO和SD卡规范间的一个重要区别是增加了低速标准。低速卡的目标应用是以最小的硬件开支支持低速I/ O能力。低速卡支持类似调制解调器、条码扫描仪和GPS接收器"
      },
      {
        "url": "/sdoc/peripheral/sdio/126b095100d21af60c8ed17e.html",
        "relativePath": "/sdoc/20-基本外设篇/50-SDIO/LV025-读写SD卡实例.html",
        "frontmatter": {
          "title": "LV025-读写SD卡实例",
          "date": "2025-09-27 10:42:10",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/sdio/126b095100d21af60c8ed17e",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "60c8ed17e9a9490aaf1efe2014ac5b67",
            "useduuid": "60c8ed17e"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV025-读写SD卡实例",
        "date": "2025-09-27 10:42:10",
        "excerpt": "",
        "capture": "一、硬件原理图\n我使用的是正点原子战舰V3的开发板,硬件连接如下图:\n&lt;img src=\"./LV025-读写SD卡实例/img/image-20230512193905411.png\" alt=\"image-20230512193905411\" style=\"zoom:50%;\" /\n 二、STM32CubeMX配置\n像LED、按键和串口的配置这里就不再赘述,这里只写SDIO相关配置。注意,这一部分中的中断和DMA相关配置是作为笔记写在这里,后边的测试函数并没有使用DMA以及中断相关的内容,都是使用的查询方式,当使用查询方式,但是又开启了DMA以及相关中断的时候,数据读写可能会失败,这"
      },
      {
        "url": "/sdoc/peripheral/rtc/126b09511eac35920a3f191c.html",
        "relativePath": "/sdoc/20-基本外设篇/55-RTC时钟/LV001-RTC简介.html",
        "frontmatter": {
          "title": "LV001-RTC简介",
          "date": "2025-09-27 11:18:52",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/rtc/126b09511eac35920a3f191c",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "20a3f191c6054d8d9f5fd53ff7b809de",
            "useduuid": "20a3f191c"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV001-RTC简介",
        "date": "2025-09-27 11:18:52",
        "excerpt": "",
        "capture": "一、RTC简介\n实时时钟( Real Time Clock, RTC), 是一个可以不使用系统主电源供电的定时器。在系统主电源断开的情况下,依靠纽扣电池供电继续计时,可以维持几个月到几年的持续工作。在系统恢复主电源工作时, 为系统提供日历、时间信息。\n&lt;img src=\"./LV001-RTC简介/img/image-20230611142452003.png\" alt=\"image-20230611142452003\" style=\"zoom:50%;\" /\n比如台式电脑主机, 必须接电源才能工作, 此时可以正常显示当前日期、时间。电脑关机一段时间后,重新开机,系统没有联网,也能正确显"
      },
      {
        "url": "/sdoc/peripheral/usb/126b095167b12a8376012928.html",
        "relativePath": "/sdoc/20-基本外设篇/60-USB/LV001-USB简介.html",
        "frontmatter": {
          "title": "LV001-USB简介",
          "date": "2025-09-27 13:05:45",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/usb/126b095167b12a8376012928",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "3760129282bc45c68e9217915df4f46b",
            "useduuid": 376012928
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV001-USB简介",
        "date": "2025-09-27 13:05:45",
        "excerpt": "",
        "capture": "USB,即通用串行总线(Universal Serial Bus),包括 USB 协议和 USB 硬件两个方面,支持热插拔功能。现在日常生活的很多方面都离不开 USB 的应用,如充电和数据传输等场景。\nUSB 经过多次修改, 1996 年确定了初始规范版本 USB1.0,目前由非盈利组织 USBIF(Front Page | USB-IF)管理。 STM32 自带的 USB 符合USB2.0 规范,故 2.0 版本仍是学习的重点。  \n 一、USB简介\nUSB 本身的知识体系非常复杂,这里就简单介绍一下,想更系统地学习 USB 的知识可以参考《圈圈教你玩 USB》、塞普拉斯提供的《USB101"
      },
      {
        "url": "/sdoc/peripheral/usb/126b095168b91d9fad5c2a07.html",
        "relativePath": "/sdoc/20-基本外设篇/60-USB/LV010-USB读卡器实例.html",
        "frontmatter": {
          "title": "LV010-USB读卡器实例",
          "date": "2025-09-27 13:08:09",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/usb/126b095168b91d9fad5c2a07",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "fad5c2a07ce14efe93e887b24a93fb47",
            "useduuid": "fad5c2a07"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV010-USB读卡器实例",
        "date": "2025-09-27 13:08:09",
        "excerpt": "",
        "capture": "一、实验说明\n学习 USB 时我们说过 USB 有很多的设备类,这一节的 USB 读卡器实际上是一个大容量存储设备(MSC: Mass Storage Class),本实验实现过程我们需要对 MSC 类实例化,即定义这个类可以操作的功能,上层应用通过 USBD_RegisterClass 函数,将此对象注册到 usbd 内核,它主要在 usbd_msc.c 源文件中实现它的各个成员函数。\n本实验中, STM32 作为设备连接到主机,我们需要使能 USB 外设,以便主机识别到 USB设备进行扫描,同时我们需要在软件上设计好 USB 枚举所需要的一些设备描述符和注册信息,配置对应的端点以用于 US"
      },
      {
        "url": "/sdoc/advanced-chapter/file-system/126b0951040033e78ccbca10.html",
        "relativePath": "/sdoc/30-进阶篇/01-文件系统/LV001-文件系统简介.html",
        "frontmatter": {
          "title": "LV001-文件系统简介",
          "date": "2025-09-27 10:50:24",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/advanced-chapter/file-system/126b0951040033e78ccbca10",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "78ccbca106d046ecaee2de5e4c1f5766",
            "useduuid": "78ccbca10"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV001-文件系统简介",
        "date": "2025-09-27 10:50:24",
        "excerpt": "",
        "capture": "一、直接存储的弊端?\n我们前边已经学习了SPI FLASH和SD卡的读写,我们可以使用SPI FLASH直接存储数据,当需要记录字符“STM32 SPI FLASH” 时。 可以把这些文字转化成ASCII码,存储在数组中,然后调用SPI_FLASH_BufferWrite函数,把数组内容写入到SPI Flash芯片的指定地址上,在需要的时候从该地址把数据读取出来,再对读出来的数据以ASCII码的格式进行解读。  \n&lt;img src=\"./LV001-文件系统简介/img/image-20230513212219299.png\" alt=\"image-20230513212219299\" "
      },
      {
        "url": "/sdoc/advanced-chapter/file-system/126b095105912fc87e8eb3f7.html",
        "relativePath": "/sdoc/30-进阶篇/01-文件系统/LV010-FATFS简介.html",
        "frontmatter": {
          "title": "LV010-FATFS简介",
          "date": "2025-09-27 10:54:25",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/advanced-chapter/file-system/126b095105912fc87e8eb3f7",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "87e8eb3f76b14573a4c0856bf2257669",
            "useduuid": "87e8eb3f7"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV010-FATFS简介",
        "date": "2025-09-27 10:54:25",
        "excerpt": "",
        "capture": "二、 FatFs简介\n 1. FatFs是什么?\nFATFS 是一个完全免费开源的 FAT 文件系统模块,专门为小型的嵌入式系统而设计。它完全用标准 C 语言编写,所以具有良好的硬件平台独立性,可以移植到 8051、 PIC、 AVR、 SH、Z80、 H8、 ARM 等系列单片机上而只需做简单的修改。它支持 FATl2、 FATl6 和 FAT32,支持多个存储媒介;有独立的缓冲区,可以对多个文件进行读/写,并特别对 8 位单片机和 16 位单片机做了优化。\n 2. 它有什么特点\n(1)Windows 兼容的 FAT 文件系统(支持 FAT12/FAT16/FAT32)\n(2)与平台无关,移"
      },
      {
        "url": "/sdoc/advanced-chapter/file-system/126b0951078a03391bda267a.html",
        "relativePath": "/sdoc/30-进阶篇/01-文件系统/LV015-基于SPIFLASH移植FATFS.html",
        "frontmatter": {
          "title": "LV015-基于SPIFLASH移植FATFS",
          "date": "2025-09-27 10:59:30",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/advanced-chapter/file-system/126b0951078a03391bda267a",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "91bda267a4934867a0b05673bbc3ef13",
            "useduuid": "91bda267a"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV015-基于SPIFLASH移植FATFS",
        "date": "2025-09-27 10:59:30",
        "excerpt": "",
        "capture": "我们先来看一下以SPI FLASH为存储介质的FatFs文件系统的移植。\n 一、底层读写\n 1. 初始化\n首先我们需要初始化SPI FLASH,在这里我使用的是W25Q128,由于我使用的是STM32CubeMX来配置的SPI,所以初始化就如下函数所示:\n```c\n/* SPI2 init function */\nvoid MX_SPI2_Init(void);\n```\n 2. 获取SPI FLASH器件ID\n这一步其实本不是必须,但是由于代码支持了其他型号的SPI FLASH,所以这一步也就成了必要的步骤,其实也有好处,那就是可以通过读取ID来判断我们的SPI FLASH是否已经初始化完成:"
      },
      {
        "url": "/sdoc/advanced-chapter/file-system/126b09511b702501a47f120c.html",
        "relativePath": "/sdoc/30-进阶篇/01-文件系统/LV020-基于SD卡移植FATFS.html",
        "frontmatter": {
          "title": "LV015-基于SD卡移植FATFS",
          "date": "2025-09-27 11:10:24",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/advanced-chapter/file-system/126b09511b702501a47f120c",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "1a47f120cd8c41b6ab06d05da2ace352",
            "useduuid": "1a47f120c"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV015-基于SD卡移植FATFS",
        "date": "2025-09-27 11:10:24",
        "excerpt": "",
        "capture": "我们先来看一下以SD卡为存储介质的FatFs文件系统的移植。另外就是,我后来移植的过程中,发现我们在使用STM32CubeMX配置SDIO的时候不要开SDIO和DMA中断,不然SD卡读写是有问题的,但是吧,移植好文件系统后,不知道为什么,怎么都跑不起来,具体是哪的影响还不清楚,后边知道了再补充。\n 一、底层读写\n 1. 初始化\n首先我们需要初始化SD卡,这里还是使用STM32CubeMX来配置的SDIO,所以初始化就如下函数所示:\n```c\nvoid MX_SDIO_SD_Init(void);\n```\n【函数说明】这个函数是完成SDIO的初始化,也就完成了对SD卡的初始化。注意这里有两个坑,"
      },
      {
        "url": "/sdoc/advanced-chapter/file-system/126b09511d060b54b7d725e9.html",
        "relativePath": "/sdoc/30-进阶篇/01-文件系统/LV025-FATFS中自定义的一些函数.html",
        "frontmatter": {
          "title": "LV025-FATFS中自定义的一些函数",
          "date": "2025-09-27 11:14:30",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/advanced-chapter/file-system/126b09511d060b54b7d725e9",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "4b7d725e9ba54c78945189a9341e3b34",
            "useduuid": "4b7d725e9"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV025-FATFS中自定义的一些函数",
        "date": "2025-09-27 11:14:30",
        "excerpt": "",
        "capture": "最终的代码可以看这里:STM32F103-Prj: STM32学习使用(STM32CubeMX+Makefile+VScode+J-Flash) (gitee.com)\n 一、文件系统结构体定义\n为了方便管理文件系统,定义一个结构体:\n```c\ntypedef struct __ex_fatfs\n{\n    FATFS *fs[FF_VOLUMES]; // 逻辑磁盘工作区.\n    BYTE *work;  // 挂载的时候用\n    FIL *file;             // 文件1\n    FIL *ftemp;            // 文件2\n    UINT br;   "
      },
      {
        "url": "/sdoc/advanced-chapter/esp8266/126b0951502d346ca9aa7929.html",
        "relativePath": "/sdoc/30-进阶篇/02-ESP8266/LV001-ESP8266模块简介.html",
        "frontmatter": {
          "title": "LV001-ESP8266模块简介",
          "date": "2025-09-27 12:45:25",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/advanced-chapter/esp8266/126b0951502d346ca9aa7929",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "ca9aa79298244701abe40ba6e8a3afb0",
            "useduuid": "ca9aa7929"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV001-ESP8266模块简介",
        "date": "2025-09-27 12:45:25",
        "excerpt": "",
        "capture": "这一节开始,我们来学习一下正点原子的ESP8266模块。\n 一、ESP8266?\n 1. ESP8266是什么?\nESP8266其实是由乐鑫公司推出的一款WIFI芯片,而国内的一些物联网公司基于乐鑫的ESP8266芯片开发出了许多WIFI模块,这些WIFI模块大多以ESP8266作为前缀命名,因此我们通常用ESP8266指ESP8266WIFI模块。\n&lt;img src=\"./LV001-ESP8266模块简介/img/image-20240108220855988.png\" alt=\"image-20240108220855988\" /\n平常使用较多的ESP8266WIFI模块是国内安信"
      },
      {
        "url": "/sdoc/advanced-chapter/esp8266/126b095151472d621a6605a9.html",
        "relativePath": "/sdoc/30-进阶篇/02-ESP8266/LV010-AT指令.html",
        "frontmatter": {
          "title": "LV010-AT指令",
          "date": "2025-09-27 12:48:07",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/advanced-chapter/esp8266/126b095151472d621a6605a9",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "21a6605a91b34e7b87e3081f66267021",
            "useduuid": "21a6605a9"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV010-AT指令",
        "date": "2025-09-27 12:48:07",
        "excerpt": "",
        "capture": "一、ESSP-AT是什么?\nESP-AT 是乐鑫开发的可直接用于量产的物联网应用固件,旨在降低客户开发成本,快速形成产品。通过 ESP-AT 指令,您可以快速加入无线网络、连接云平台、实现数据通信以及远程控制等功能,真正的通过无线通讯实现万物互联。\nESP-AT 是基于 ESP-IDF 或 ESP8266_RTOS_SDK 实现的软件工程。它使 ESP 模组作为从机,MCU 作为主机。MCU 发送 AT 命令给 ESP 模组,控制 ESP 模组执行不同的操作,并接收 ESP 模组返回的 AT 响应。ESP-AT 提供了大量功能不同的 AT 命令,如 Wi-Fi 命令、TCP/IP 命令、Blu"
      },
      {
        "url": "/sdoc/advanced-chapter/esp8266/126b0951520814de18399844.html",
        "relativePath": "/sdoc/30-进阶篇/02-ESP8266/LV015-ESP8266固件烧录.html",
        "frontmatter": {
          "title": "LV015-ESP8266固件烧录",
          "date": "2025-09-27 12:50:00",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/advanced-chapter/esp8266/126b0951520814de18399844",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "e18399844bf344e3bb81cdc33db73395",
            "useduuid": "e18399844"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV015-ESP8266固件烧录",
        "date": "2025-09-27 12:50:00",
        "excerpt": "",
        "capture": "这里主要是学习esp8266_start_guide_1_.pdf (ai-thinker.com)这篇文档,这是安信可提供的一个ESSP8266的入门教程。这节用的图都是安信可官方的模块,我没有实际买,这里只是做个笔记学习用。\n 一、接线与模式\n 1. 典型接线图\n这里以ESP01为例:\n&lt;img src=\"./LV015-ESP8266固件烧录/img/image-20240112192441073.png\" alt=\"image-20240112192441073\" style=\"zoom:50%;\" /\n 2. 启动模式\n一般来讲是这样的:\n&lt;img src=\"./LV01"
      },
      {
        "url": "/sdoc/advanced-chapter/esp8266/126b095152fb04ead8380cb5.html",
        "relativePath": "/sdoc/30-进阶篇/02-ESP8266/LV020-ATK-MW8266模块使用实例.html",
        "frontmatter": {
          "title": "LV020-ATK-ESP8266使用实例",
          "date": "2025-09-27 12:52:43",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/advanced-chapter/esp8266/126b095152fb04ead8380cb5",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "ad8380cb587c446592ab6fa1ae7318fd",
            "useduuid": "ad8380cb5"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV020-ATK-ESP8266使用实例",
        "date": "2025-09-27 12:52:43",
        "excerpt": "",
        "capture": "一、硬件连接\nATK-MW8266D 模块可直接与正点原子战舰 STM32F103 开发板板载的 ATK 模块接口( ATK MODULE)进行连接,具体的连接关系,如下表所示:  \n&lt;img src=\"./LV020-ATK-MW8266模块使用实例/img/image-20240113094305951.png\" alt=\"image-20240113094305951\" style=\"zoom:50%;\" /\n注意,若要使用正点原子战舰 STM32F103 开发板的 ATK MODULE 接口连接ATK-MW8266D 模块,需要用跳线帽将开发板板载的 P8 接线端子的 PB10("
      },
      {
        "url": "/sdoc/advanced-chapter/ov7725/126b09516b08191a7bd0fd02.html",
        "relativePath": "/sdoc/30-进阶篇/03-OV7725/LV001-ATK-MC6625F模块简介.html",
        "frontmatter": {
          "title": "LV001-ATK-MC6625F模块简介",
          "date": "2025-09-27 13:14:00",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/advanced-chapter/ov7725/126b09516b08191a7bd0fd02",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "a7bd0fd0290345cfae6ad4ff74f043f7",
            "useduuid": "a7bd0fd02"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV001-ATK-MC6625F模块简介",
        "date": "2025-09-27 13:14:00",
        "excerpt": "",
        "capture": "一、ATK-MC6625F模块简介\nATK-MC7725F 模块一款高性能 30W 高清摄像头模块。 该模块采用 OmniVision 公司的 OV7725 摄像头传感器作为核心, OV7725 是一颗 1/4 英寸 CMOS VGA( 640*480)的图像传感器。 同时 ATK-MC7725F 模块集成了有源晶振和 FIFO 芯片, 这使得可以采用大部分的 MCU 控制该模块和读取图像数据。  \nATK-MC6625F 模块具有如下特点:\n- 集成有源晶振,无需外部提供时钟\n- 集成 FIFO 芯片,方便外部 MCU 读取图像\n- 支持 VGA、 QVGA 和从 CIF 到 40*30 的"
      },
      {
        "url": "/sdoc/advanced-chapter/ov7725/126b09516b6c2fed98855250.html",
        "relativePath": "/sdoc/30-进阶篇/03-OV7725/LV010-SCCB协议简介.html",
        "frontmatter": {
          "title": "LV010-SCCB协议简介",
          "date": "2025-09-27 13:15:00",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/advanced-chapter/ov7725/126b09516b6c2fed98855250",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "d9885525026649bdb9a31be28b79a722",
            "useduuid": "d98855250"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV010-SCCB协议简介",
        "date": "2025-09-27 13:15:00",
        "excerpt": "",
        "capture": "一、SCCB是什么?\nSCCB(Serial Camera Control Bus,串行摄像头控制总线) 是 OmniVision 开发的一种总线协议, 且广泛被应用于 OV 系列图像传感器上。\nSCCB 协议与 IIC 协议十分相似, SCCB协议由两条信号线组成: SIO_C(类似 IIC 协议的 SCL) 和 SIO_D(类似 IIC 协议的 SDA)。与 IIC 协议一样, SCCB 协议也有起始信号和停止信号, 只不过与 IIC 协议不同的是, IIC协议在传输完 1 字节数据后,需要传输的接收方发送 1 比特的确认位,而 SCCB 协议一次性要传输 9 位数据, 前 8 位为读写的"
      },
      {
        "url": "/sdoc/advanced-chapter/ov7725/126b09516bd03c413cd356e8.html",
        "relativePath": "/sdoc/30-进阶篇/03-OV7725/LV020-OV7725简介.html",
        "frontmatter": {
          "title": "LV020-OV7725简介",
          "date": "2025-09-27 13:16:00",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/advanced-chapter/ov7725/126b09516bd03c413cd356e8",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "13cd356e84f447f3b52ee1a287368dce",
            "useduuid": "13cd356e8"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV020-OV7725简介",
        "date": "2025-09-27 13:16:00",
        "excerpt": "",
        "capture": "一、OV7725简介\n 1. CCD  Sensor与CMOS Sensor\n目前市场上采用的图像传感器(Sensor)主要有CCD与CMOS这两种。CCD Sensor的技术比较成熟,一致性较好,色彩还原逼真,在尺寸方面也有一定的优势,但是其工艺复杂、成本高、功耗大,像素提高难度大,技术遇到瓶颈。而CMOS Sensor制造工艺简单,成本相对较低,功耗小,开发简便,在现阶段有较大的发展空间。相关参数的对比如表所示。\n&lt;img src=\"./LV020-OV7725简介/img/image-20240114142822888.png\" alt=\"image-202401141428228"
      },
      {
        "url": "/sdoc/advanced-chapter/display/oled/126b09516d6c2a948085516b.html",
        "relativePath": "/sdoc/30-进阶篇/04-显示屏/01-OLED/LV001-OLED简介.html",
        "frontmatter": {
          "title": "LV001-OLED简介",
          "date": "2025-09-27 13:20:12",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/advanced-chapter/display/oled/126b09516d6c2a948085516b",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "48085516b89044b2a637057cfaac3f5c",
            "useduuid": "48085516b"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV001-OLED简介",
        "date": "2025-09-27 13:20:12",
        "excerpt": "",
        "capture": "本节笔记放在这里,主要是为了学习8080时序,为后边FSMC产生8080时序做铺垫,这一部分的笔记是用GPIO模拟8080时序,这样对8080时序的认识会更深刻一些。这一节会涉及一些像素啊,显存啊什么的基本概念,笔记写在LCD屏幕学的相关笔记中了。平时我用的还是I2C或者SPI接口的OLED。\n 一、OLED简介\n 1. 简介\nOLED,即有机发光二极管(Organic Light-Emitting Diode),又称为有机电激光显示(Organic Electroluminesence Display, OELD)。OLED由于同时具备自发光,不需背光源、对比度高、厚度薄、视角广、反应速度快"
      },
      {
        "url": "/sdoc/advanced-chapter/display/oled/126b09517279099247b327e5.html",
        "relativePath": "/sdoc/30-进阶篇/04-显示屏/01-OLED/LV010-8080时序驱动OLED.html",
        "frontmatter": {
          "title": "LV010-8080时序驱动OLED",
          "date": "2025-09-27 13:33:05",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/advanced-chapter/display/oled/126b09517279099247b327e5",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "247b327e5f1747919749deb8038e066d",
            "useduuid": "247b327e5"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV010-8080时序驱动OLED",
        "date": "2025-09-27 13:33:05",
        "excerpt": "",
        "capture": "本节笔记放在这里,主要是为了学习8080时序,为后边FSMC产生8080时序做铺垫,这一部分的笔记是用GPIO模拟8080时序,这样对8080时序的认识会更深刻一些。由于我没有8080并口的OLED模块,所以还是以正点原子的OLED模块来进行时序的模拟。\n 一、硬件原理图\n&lt;img src=\"./LV010-8080时序驱动OLED/img/image-20230516234228390.png\" alt=\"image-20230516234228390\" style=\"zoom:50%;\" /\n(1)CS: OLED 片选信号,对应 PD6。\n(2)WR:向 OLED 写入数据,对应 "
      },
      {
        "url": "/sdoc/advanced-chapter/display/lcd/126b0951740b3b3a3f69973e.html",
        "relativePath": "/sdoc/30-进阶篇/04-显示屏/02-LCD/LV001-LCD简介.html",
        "frontmatter": {
          "title": "LV001-LCD简介",
          "date": "2025-09-27 13:37:07",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/advanced-chapter/display/lcd/126b0951740b3b3a3f69973e",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "a3f69973ef4142428240aba5719aeeb0",
            "useduuid": "a3f69973e"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV001-LCD简介",
        "date": "2025-09-27 13:37:07",
        "excerpt": "",
        "capture": "一、显示屏基础\n显示器属于计算机的I/O设备,即输入输出设备。它是一种将特定电子信息输出到屏幕上再反射到人眼的显示工具。常见的有CRT显示器、液晶显示器、LED点阵显示器及OLED显示器。从第一个显示装置发明至今,已经快有百年历史。 在显示屏的发展中,依次出现了三大显示技术: CRT、LCD、 OLED,如图所示。  \n&lt;img src=\"./LV001-LCD简介/img/image-20230503183212724.png\" alt=\"image-20230503183212724\" style=\"zoom:50%;\" /\n 1. CRT显示屏\n1897年, 德国电气工程师、 发明"
      },
      {
        "url": "/sdoc/advanced-chapter/display/lcd/126b0951760b03320ea5c5be.html",
        "relativePath": "/sdoc/30-进阶篇/04-显示屏/02-LCD/LV010-液晶控制原理.html",
        "frontmatter": {
          "title": "LV010-液晶控制原理",
          "date": "2025-09-27 13:42:19",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/advanced-chapter/display/lcd/126b0951760b03320ea5c5be",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "20ea5c5be93445288eac3b57c2e84f66",
            "useduuid": "20ea5c5be"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV010-液晶控制原理",
        "date": "2025-09-27 13:42:19",
        "excerpt": "",
        "capture": "一、显示屏的组成\n下图是两种适合于STM32芯片使用的显示屏,我们以它为例讲解控制液晶屏的基本原理。\n&lt;img src=\"./LV010-液晶控制原理/img/LCD007.jpeg\" alt=\"适合STM32控制的显示屏实物图\" style=\"zoom: 33%;\" /\n这个完整的显示屏由液晶显示面板、电容触摸面板以及PCB底板构成。图中的触摸面板带有触摸控制芯片,该芯片处理触摸信号并通过引出的信号线与外部器件通讯, 触摸面板中间是透明的,它贴在液晶面板上面,一起构成屏幕的主体,触摸面板与液晶面板引出的排线连接到PCB底板上,根据实际需要, PCB底板上可能会带有“液晶控制器芯片”,图"
      },
      {
        "url": "/sdoc/advanced-chapter/display/lcd/126b095237661ce983ad47b1.html",
        "relativePath": "/sdoc/30-进阶篇/04-显示屏/02-LCD/LV015-ATK-MD0280模块.html",
        "frontmatter": {
          "title": "LV015-ATK-MD0280模块",
          "date": "2025-09-27 18:37:18",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/advanced-chapter/display/lcd/126b095237661ce983ad47b1",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "983ad47b1ccb49c59396418e90556b0c",
            "useduuid": "983ad47b1"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV015-ATK-MD0280模块",
        "date": "2025-09-27 18:37:18",
        "excerpt": "",
        "capture": "一、相关资料\n这一部分主要看一下我们有哪些资料可以看,注意这里的资料都是放在本地的笔记对应的文件夹中:\n- ATK-MD0280模块用户手册:正点原子ATK-MD0280模块用户手册.pdf\n- ATK-MD0280模块裸屏图:00ATK-MD0280裸屏尺寸图(钢化玻璃TP).pdf\n- ILI9341芯片手册:01ILI9341_DS.pdf\n- 触摸驱动芯片手册:04XPT2046.pdf\n 二、2.8寸LCD模块\n我使用的是正点原子的2.8寸LCD模块,后边也是以这个模块进行学习。\n 1. 屏幕简介\nATK-MD0280-V2.4(V2.4 是版本号,下面均以 ATK-MD0280 表"
      },
      {
        "url": "/sdoc/advanced-chapter/display/lcd/126b095238ef12080fa9e2fc.html",
        "relativePath": "/sdoc/30-进阶篇/04-显示屏/02-LCD/LV016-IL9341简介.html",
        "frontmatter": {
          "title": "LV016-IL9341简介",
          "date": "2025-09-27 18:41:11",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/advanced-chapter/display/lcd/126b095238ef12080fa9e2fc",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "80fa9e2fc1c846ac9bfafe695ffc6b7d",
            "useduuid": "80fa9e2fc"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV016-IL9341简介",
        "date": "2025-09-27 18:41:11",
        "excerpt": "",
        "capture": "一、简介\nILI9341是奕力科技股份有限公司 (ilitek.com)的一款小尺寸驱动IC,我在官网没看到芯片手册,但是有些查datasheet的地方是可以查到的,这里就不写链接了。我在本地保存了一份:01ILI9341_DS.pdf\n它是一个支持分辨率为240x320点阵的a-TFT LCD 的262144(26万色)色单片驱动器。这个单片驱动器包含了一个720通道的源极驱动器(source driver),一个320通道的栅极驱动器(gate driver),自带一个172800字节(320x240x18/8)的GRAM用于显示240x320分辨率的图片数据。ILI9341提供8位/9位"
      },
      {
        "url": "/sdoc/advanced-chapter/display/lcd/126b09523c371707f0bd772f.html",
        "relativePath": "/sdoc/30-进阶篇/04-显示屏/02-LCD/LV020-FSMC模拟8080时序.html",
        "frontmatter": {
          "title": "LV020-FSMC模拟8080时序",
          "date": "2025-09-27 18:49:51",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/advanced-chapter/display/lcd/126b09523c371707f0bd772f",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "7f0bd772fcbd424ab2f5aaf94abf65ff",
            "useduuid": "7f0bd772f"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV020-FSMC模拟8080时序",
        "date": "2025-09-27 18:49:51",
        "excerpt": "",
        "capture": "一、FSMC简介\n\n 1. 简介\nILI9341的8080通讯接口时序可以由STM32使用普通I/O接口进行模拟,但这样效率太低,STM32提供了一种特别的控制方法——使用FSMC接口实现8080时序。\n&lt;img src=\"./LV020-FSMC模拟8080时序/img/image-20230519221727962.png\" alt=\"image-20230519221727962\" style=\"zoom:50%;\" /&gt;\n我们前边学习SRAM的时候了解到STM32的FSMC外设可以用于控制扩展的外部存储器,而MCU对液晶屏的操作实际上就是把显示数据写入到显存中,与控制存储器"
      },
      {
        "url": "/sdoc/advanced-chapter/display/lcd/126b095253d9037570d31d42.html",
        "relativePath": "/sdoc/30-进阶篇/04-显示屏/02-LCD/LV025-LCD显示实例.html",
        "frontmatter": {
          "title": "LV025-LCD显示实例",
          "date": "2025-09-27 19:10:01",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/advanced-chapter/display/lcd/126b095253d9037570d31d42",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "570d31d42d894e208a1fb9d5c484e257",
            "useduuid": "570d31d42"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV025-LCD显示实例",
        "date": "2025-09-27 19:10:01",
        "excerpt": "",
        "capture": "这一节的笔记主要是LCD显示相关,不关注触摸屏相关引脚。\n 一、硬件原理图\n 1. 正点原子2.8寸LCD模块\n&lt;img src=\"./LV025-LCD显示实例/img/image-20230520165852112.png\" alt=\"image-20230520165852112\" style=\"zoom:50%;\" /\n上图是正点原子的2.8寸LCD模块的原理图,说真的,没看懂,不明白为什么模块原理图上跳过了D8和D9两根线,并且标号对应的时候要D0对应DB1这样子。这个图给我看自闭了,反正是没看懂,而且教程也没见说为什么这样。索性不看了,目前就看几个关键的引脚,这几个关键的引脚"
      },
      {
        "url": "/sdoc/advanced-chapter/display/lcd/126b095255800a53f67e99cc.html",
        "relativePath": "/sdoc/30-进阶篇/04-显示屏/02-LCD/LV030-字符编码简介.html",
        "frontmatter": {
          "title": "LV030-字符编码基础",
          "date": "2025-09-27 19:14:24",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/advanced-chapter/display/lcd/126b095255800a53f67e99cc",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "3f67e99cc1774328be76eff3ae429948",
            "useduuid": "3f67e99cc"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV030-字符编码基础",
        "date": "2025-09-27 19:14:24",
        "excerpt": "",
        "capture": "一、字符编码概述\n在计算机上,我们看到的字符“ A”可能长这样 :\n&lt;img src=\"./LV030-字符编码简介/img/image-20230525215626795.png\" alt=\"image-20230525215626795\" style=\"zoom:50%;\" /\n对于同一个 TXT 文件中的内容,我们在 Notepad++ 上选择不同字体时,字符显示的形状也可能不一样。  所以 TXT 文件中保存的是字符的核心:它的编码值。而 Notepad++ 上显示时,这些字符对应什么样的形状态,这是由字符文件决定的。\n编码值,字体是两个不一样的东西,比如 A 的编码值是 0x4"
      },
      {
        "url": "/sdoc/advanced-chapter/display/lcd/126b0952576b3df0941e36ed.html",
        "relativePath": "/sdoc/30-进阶篇/04-显示屏/02-LCD/LV035-中英文的显示.html",
        "frontmatter": {
          "title": "LV035-中英文的显示",
          "date": "2025-09-27 19:19:15",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/advanced-chapter/display/lcd/126b0952576b3df0941e36ed",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "0941e36ed35b4da7a71acace5c8d2e0d",
            "useduuid": "0941e36ed"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV035-中英文的显示",
        "date": "2025-09-27 19:19:15",
        "excerpt": "",
        "capture": "一、字模\n 1. 什么是字模?\n前边我们已经了解了字符的编码,有了编码,我们就能在计算机中处理、存储字符了,但是如果计算机处理完字符后直接以编码的形式输出,人类将难以识别。因此计算机与人交互时,一般会把字符转化成人类习惯的表现形式进行输出,如显示、打印的时候。\n但是如果仅有字符编码,计算机还不知道该如何表达该字符,因为字符实际上是一个个独特的图形,计算机必须把字符编码转化成对应的字符图形人类才能正常识别,因此我们要给计算机提供字符的图形数据,这些数据就是字模,多个字模数据组成的文件也被称为字库。计算机显示字符时,根据字符编码与字模数据的映射关系找到它相应的字模数据,液晶屏根据字模数据显示该字符"
      },
      {
        "url": "/sdoc/advanced-chapter/display/lcd/126b09525e7116330989fbcc.html",
        "relativePath": "/sdoc/30-进阶篇/04-显示屏/02-LCD/LV040-实现任意大小字模.html",
        "frontmatter": {
          "title": "LV040-实现任意大小字模",
          "date": "2025-09-27 19:37:13",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/advanced-chapter/display/lcd/126b09525e7116330989fbcc",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "30989fbcc8354f6baad6455294de0120",
            "useduuid": "30989fbcc"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV040-实现任意大小字模",
        "date": "2025-09-27 19:37:13",
        "excerpt": "",
        "capture": "我们要是想显示不同大小的字符怎么办?重新生成不同大小的字模?这当然是可以的啦,但是吧,要是需要的大小有很多怎么办,比如说我们需要16x16的,32x32的,64x64的,......,这样的话,都生成数组,然后放在文件里嘛,中文也都做成字库嘛?这样其实是可以的,只要内存足够就行,但是这样其实是很浪费资源的,它们的字模都是一样的,但是仅仅就是大小不同,我们就不能用一张表,然后对字体进行缩放,得到其他大小的字模嘛?当然可以啦,下边就来学习一下这个字模缩放的流程啦。\n注意后边主要是以英文字模的缩放为例,来说明缩放的原理,我们使用的字模大小为宽16高16,对应到英文的话,就是宽8高16啦。\n 一、基本"
      },
      {
        "url": "/docs/126b096ee4d10f3bb564b607.html",
        "relativePath": "/sdoc/30-进阶篇/90-FreeRTOS/01-FreeRTOS简介/LV001-FreeRTOS简介.html",
        "frontmatter": {
          "title": "LV001-FreeRTOS简介",
          "date": "2025-09-29 06:31:21",
          "icon": "famicons:logo-markdown",
          "permalink": "/docs/126b096ee4d10f3bb564b607",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "bb564b607089439882d4247b57282de9",
            "useduuid": "bb564b607"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV001-FreeRTOS简介",
        "date": "2025-09-29 06:31:21",
        "excerpt": "",
        "capture": "一、RTOS简介\n一般嵌入式系统分为两种:前后台系统和实时系统。\n 1. 前后台系统\n早期嵌入式开发没有嵌入式操作系统的概念,直接操作裸机,在裸机上写程序,直接一个while大循环,在循环中实现功能。通常把程序分为两部分:前台系统 和 后台系统。\n简单的小系统通常是前后台系统,这样的程序包括一个死循环和若干个中断服务程序:应用程序是一个无限循环,循环中调用API函数完成所需的操作,这个大循环就叫做后台系统。中断服务程序用于处理系统的异步事件,也就是前台系统。前台是中断级,后台是任务级。\n 2. 实时系统?\n&gt; 参考:《嵌入式实时操作系统RT-Thread设计与实现》 提取码: rpxn "
      },
      {
        "url": "/sdoc/communication/i2c/126b09043f2d250b963bfb0d.html",
        "relativePath": "/sdoc/60-通信专题/01-I2C协议/LV001-I2C简介.html",
        "frontmatter": {
          "title": "LV001-I2C简介",
          "date": "2025-09-22 07:39:01",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/communication/i2c/126b09043f2d250b963bfb0d",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "b963bfb0deb74fcaa8f060b7b084d3d8",
            "useduuid": "b963bfb0d"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV001-I2C简介",
        "date": "2025-09-22 07:39:01",
        "excerpt": "",
        "capture": "一、I2C简介\n 1. I2C介绍\nI2C 就是 I2C ( Inter-Integrated Circuit )总线,是一种多主从架构串行通信总线。在1980年由 PHILIPS  (飞利浦)公司开发的两线式串行、同步、半双工、多主多从的通信总线,用于连接微控制器及其外围设备。它可以让主板、嵌入式系统或手机连接低速周边设备, 如今在嵌入式领域是非常常见。\n它是由数据线  SDA  和时钟  SCL  构成的串行总线,可发送和接收数据。在  CPU  与被控  IC  之间、  IC  与  IC  之间进行双向传送数据, 标准 I2C 总线传输速率可到 100kbps ,高速  I2C  总"
      },
      {
        "url": "/sdoc/communication/i2c/126b09043fca31869028172d.html",
        "relativePath": "/sdoc/60-通信专题/01-I2C协议/LV020-AT24C02实例分析.html",
        "frontmatter": {
          "title": "LV020-AT24C02实例分析",
          "date": "2025-09-22 07:40:58",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/communication/i2c/126b09043fca31869028172d",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "69028172daa144dcbab34851329c3348",
            "useduuid": "69028172d"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV020-AT24C02实例分析",
        "date": "2025-09-22 07:40:58",
        "excerpt": "",
        "capture": "AT24C02 是一个 256 (2K/8)个字节的 EEPROM ,它使用的接口就是 I2C ,在它的芯片手册中,给出了读写时序的时序图,我们就以此器件为例分析一下 I2C 的读写时序。\n 一、单字节写时序\n&lt;img src=\"./LV020-AT24C02实例分析/img/image-20220903160151362.png\" alt=\"image-20220903160151362\" style=\"zoom:50%;\" /\n(1)开始信号。\n(2)发送  I2C  设备地址,每个  I2C  器件都有一个设备地址,通过发送具体的设备地址来决定访问哪个  I2C  器件。这是一个 "
      },
      {
        "url": "/sdoc/communication/serial-port/126b0904421d06db7b197798.html",
        "relativePath": "/sdoc/60-通信专题/10-串口/LV001-串口通信简介.html",
        "frontmatter": {
          "title": "LV001-串口通信简介",
          "date": "2025-09-22 07:46:53",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/communication/serial-port/126b0904421d06db7b197798",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "b7b197798fd74f3fb97abd23e12eb7bc",
            "useduuid": "b7b197798"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV001-串口通信简介",
        "date": "2025-09-22 07:46:53",
        "excerpt": "",
        "capture": "一、串口通信简介\n 1. 串口简介\n串口通讯(Serial Communication)是一种设备间非常常用的串行通讯方式,因为它简单便捷,因此大部分电子设备都支持该通讯方式。串口全称叫做串行接口,通常也叫做 COM 接口,串行接口指的是数据一个一个的顺序传输,通信线路简单。使用两条线即可实现双向通信,一条用于发送,一条用于接收。串口通信距离远,但是速度相对会低,串口是一种很常用的工业接口。我们常用串行外设接口有UART和USART两种:\n- UART:UART 全称是 Universal Asynchronous Receiver/Trasmitter,也就是异步串行收发器。\n- USART"
      },
      {
        "url": "/sdoc/communication/serial-port/126b0950f26b1afbd6db3885.html",
        "relativePath": "/sdoc/60-通信专题/10-串口/LV020-RS232简介.html",
        "frontmatter": {
          "title": "LV020-RS232简介",
          "date": "2025-09-27 10:05:23",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/communication/serial-port/126b0950f26b1afbd6db3885",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "bd6db38856214d8db0d0697d94245e7d",
            "useduuid": "bd6db3885"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV020-RS232简介",
        "date": "2025-09-27 10:05:23",
        "excerpt": "",
        "capture": "一、RS232简介\nRS232是美国电子工业协会( Electronic Industries Association, EIA) 于1962年发布的串行通信接口标准,其中RS为英文“ Recomend Standard”的缩写, 中文翻译为“ 推荐标准”, 232为标识号。该标准对串行通信的物理接口及逻辑电平都做了规定, 其输出的电平称为RS232电平。早期常见于个人计算机上,是计算机通讯接口之一。现如今在个人计算机上已比较少见, 但在一些工控设备依旧比较多。\n最简单的RS232通信由三条数据线组成,即TXD、 RXD和GND。 RS232采用负逻辑电平,即-15V ~ -3V代表逻辑“ 1"
      },
      {
        "url": "/sdoc/communication/serial-port/126b0950f287303e7c68cbb5.html",
        "relativePath": "/sdoc/60-通信专题/10-串口/LV030-RS485简介.html",
        "frontmatter": {
          "title": "LV030-RS485简介",
          "date": "2025-09-27 10:05:51",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/communication/serial-port/126b0950f287303e7c68cbb5",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "e7c68cbb501d41a4be750e720e3a5e0a",
            "useduuid": "e7c68cbb5"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV030-RS485简介",
        "date": "2025-09-27 10:05:51",
        "excerpt": "",
        "capture": "一、RS485简介\nRS485是美国电子工业协会( Electronic Industries Association, EIA)于1983年发布的串行通信接口标准,经通讯工业协会( TIA)修订后命名为TIA/EIA-485-A。  485(一般称作RS485/EIA-485)是隶属于OSI模型物理层的电气特性规定为2线,半双工,多点通信的标准。用缆线两端的电压差值来表示传递信号。RS485仅仅规定了接受端和发送端的电气特性。它没有规定或推荐任何数据协议。\nRS485比RS232晚出现20多年,很多RS232的缺点,在RS485上有了改进。RS232的电平从-15V至+15V, 较高的电平值"
      },
      {
        "url": "/sdoc/communication/spi/126b0950dceb1d850b1e36d8.html",
        "relativePath": "/sdoc/60-通信专题/30-SPI/LV001-SPI简介.html",
        "frontmatter": {
          "title": "LV001-SPI简介",
          "date": "2025-09-27 09:50:19",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/communication/spi/126b0950dceb1d850b1e36d8",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "50b1e36d86eb4c0e85c11fe350fcd877",
            "useduuid": "50b1e36d8"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV001-SPI简介",
        "date": "2025-09-27 09:50:19",
        "excerpt": "",
        "capture": "一、 SPI协议简介\n 1. 什么是SPI?\nSPI 协议,Serial Peripheral Interface  ,即串行外围设备接口, 是由摩托罗拉公司提出的通讯协议( Motorola) 在1980前后提出的一种全双工同步串行通信接口,它用于MCU与各种外围设备以串行方式进行通信以交换信息,通信速度最高可达25MHz以上。SPI接口主要应用在EEPROM、 FLASH、实时时钟、网络控制器、 OLED显示驱动器、 AD转换器,数字信号处理器、数字信号解码器等与MCU间要求通讯速率较高的场合 。\nSPI,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管"
      },
      {
        "url": "/sdoc/communication/can/126b0950f34624bdf8f7407f.html",
        "relativePath": "/sdoc/60-通信专题/40-CAN/LV001-CAN通信简介.html",
        "frontmatter": {
          "title": "LV001-CAN通信简介",
          "date": "2025-09-27 10:07:42",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/communication/can/126b0950f34624bdf8f7407f",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "df8f7407fc324becb0237697f4ea8f9c",
            "useduuid": "df8f7407f"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV001-CAN通信简介",
        "date": "2025-09-27 10:07:42",
        "excerpt": "",
        "capture": "一、CAN简介\n 1. CAN\n控制器局域网( Controller Area Network, CAN) ,是由德国BOSCH(博世)公司开发, 是目前国际上应用最为广泛的现场总线之一。 其特点是可拓展性好,可承受大量数据的高速通信, 高度稳定可靠,因此常应用于汽车电子领域、工业自动化、医疗设备等高要求环境。  \n它是 ISO 国际标准化的串行通信协议。在当前的汽车产业中,出于对安全性、舒适性、方便性、低公害、低成本的要求,各种各样的电子控制系统被开发了出来。由于这些系统之间通信所用的数据类型及对可靠性的要求不尽相同,由多条总线构成的情况很多,线束的数量也随之增加。为适应“减少线束的数量”、"
      },
      {
        "url": "/sdoc/communication/126b09043e1c12685fda3fb8.html",
        "relativePath": "/sdoc/60-通信专题/LV001-通信概述.html",
        "frontmatter": {
          "title": "LV001-通信概述",
          "date": "2025-09-22 07:36:28",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/communication/126b09043e1c12685fda3fb8",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "85fda3fb8df54e90807dd03d5831b5bf",
            "useduuid": "85fda3fb8"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV001-通信概述",
        "date": "2025-09-22 07:36:28",
        "excerpt": "",
        "capture": "一、通信的两种方式\n处理器与外部设备通信,按数据传送的方式,通讯可分为串行通讯与并行通讯,但是一般我们看到的大多数都是串行通信。\n 1.串行通信\n串行通讯是指设备之间通过少量数据信号线(一般是 8 根以下), 地线以及控制信号线,按数据位形式一位一位地传输数据的通讯方式。\n- 传输原理:数据按位顺序传输\n- 优点:占用处理器引脚资源少\n- 缺点:传输速度相对较慢\n&lt;img src=\"./LV001-通信概述/img/image-20220918111415861.png\" alt=\"image-20220918111415861\" style=\"zoom:33%;\" /\n 2.并行通信\n"
      }
    ],
    "sortPostsByDateAndSticky": [
      {
        "url": "/sdoc/basic/stm32flash/126b0e4540061175c7584cc2.html",
        "relativePath": "/sdoc/10-基础篇/50-STM32内部FLASH/LV025-IAP编程实现.html",
        "frontmatter": {
          "title": "LV025-IAP编程实现",
          "date": "2025-10-10 22:00:38",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/basic/stm32flash/126b0e4540061175c7584cc2",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "5c7584cc23ea451aaa122d51f3053c7c",
            "useduuid": "5c7584cc2"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV025-IAP编程实现",
        "date": "2025-10-10 22:00:38",
        "excerpt": "",
        "capture": "一、APP应用程序制作\nSTM32 的 APP 程序不仅可以放到 FLASH 里面运行,也可以放到 SRAM 里面运行,  我们使用的STM32F103ZET6有512KB的FLASH和64KB的SRAM,FLASH的地址为 0x0800 0000 \\~ 0x0807 FFFF,内部SRAM的地址为 0x2000 0000 \\~ 0x2000 FFFF。\n 1.APP起始地址设置\n 1.1 FLASH中运行\n- 【Options for Target】&rarr;【Target】\n&lt;img src=\"./LV025-IAP编程实现/img/image-20220925122206196."
      },
      {
        "url": "/sdoc/basic/stm32flash/126b0e26745a3124f27972bd.html",
        "relativePath": "/sdoc/10-基础篇/50-STM32内部FLASH/LV020-IAP编程简介.html",
        "frontmatter": {
          "title": "LV020-IAP编程简介",
          "date": "2025-10-08 20:18:18",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/basic/stm32flash/126b0e26745a3124f27972bd",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "4f27972bd3fc4860b4605d3ba9d93bb7",
            "useduuid": "4f27972bd"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV020-IAP编程简介",
        "date": "2025-10-08 20:18:18",
        "excerpt": "",
        "capture": "一、STM32编程方式\n 1. 在线编程\n 1.1 基本概念\nICP,全称为In-Circuit Programming,即在线编程。是通过 JTAG或者SWD 协议或者系统加载程序(Bootloader)下载用户应用程序到微控制器中。这种方式就是我们平时用的下载程序方式,就是通过JTAG下载器将我们通过Keil生成的hex文件下载到STM32开发板中。\n注意:这里我也不知道教程为什么叫这个,前边学习启动方式的时候也有提到过,它其实也可以称为 In System Program,也就是ISP,主要依靠ST官方在芯片内固化的BootLoader来接收来自串口的程序。\n 1.2 下载流程\n从串口下"
      },
      {
        "url": "/sdoc/basic/stm32memory/126b0e24d5e326e3a7296e85.html",
        "relativePath": "/sdoc/10-基础篇/60-STM32的内存/LV010-内存管理.html",
        "frontmatter": {
          "title": "LV010-内存管理",
          "date": "2025-10-08 09:57:15",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/basic/stm32memory/126b0e24d5e326e3a7296e85",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "3a7296e85ae54af393dd0790947698ce",
            "useduuid": "3a7296e85"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV010-内存管理",
        "date": "2025-10-08 09:57:15",
        "excerpt": "",
        "capture": "我们学习了使用 STM32F1 驱动外部 SRAM,以扩展 STM32F1 的内存,加上STM32F1 本身自带的 64K 字节内存,我们可供使用的内存还是比较多的。如果我们所用的内存都像上一节的 testsram 那样,定义一个数组来使用,显然不是一个好办法。后来在使用Flash做Bootloader实验的时候,就无法在原有工程中定义一个55KB的数组,然后 lcd做字模缩放的时候,数组也是预先定义好的,直接就16KB,再加上一些其他的,STM32内部Flash一共就64KB,直接被我占满,sct文件中定义了SRAM的长度,导致编译都无法通过,所以动态的去管理内存就很有必要了。\n &lt;f"
      },
      {
        "url": "/docs/126b096ee4d10f3bb564b607.html",
        "relativePath": "/sdoc/30-进阶篇/90-FreeRTOS/01-FreeRTOS简介/LV001-FreeRTOS简介.html",
        "frontmatter": {
          "title": "LV001-FreeRTOS简介",
          "date": "2025-09-29 06:31:21",
          "icon": "famicons:logo-markdown",
          "permalink": "/docs/126b096ee4d10f3bb564b607",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "bb564b607089439882d4247b57282de9",
            "useduuid": "bb564b607"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV001-FreeRTOS简介",
        "date": "2025-09-29 06:31:21",
        "excerpt": "",
        "capture": "一、RTOS简介\n一般嵌入式系统分为两种:前后台系统和实时系统。\n 1. 前后台系统\n早期嵌入式开发没有嵌入式操作系统的概念,直接操作裸机,在裸机上写程序,直接一个while大循环,在循环中实现功能。通常把程序分为两部分:前台系统 和 后台系统。\n简单的小系统通常是前后台系统,这样的程序包括一个死循环和若干个中断服务程序:应用程序是一个无限循环,循环中调用API函数完成所需的操作,这个大循环就叫做后台系统。中断服务程序用于处理系统的异步事件,也就是前台系统。前台是中断级,后台是任务级。\n 2. 实时系统?\n&gt; 参考:《嵌入式实时操作系统RT-Thread设计与实现》 提取码: rpxn "
      },
      {
        "url": "/sdoc/advanced-chapter/display/lcd/126b09525e7116330989fbcc.html",
        "relativePath": "/sdoc/30-进阶篇/04-显示屏/02-LCD/LV040-实现任意大小字模.html",
        "frontmatter": {
          "title": "LV040-实现任意大小字模",
          "date": "2025-09-27 19:37:13",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/advanced-chapter/display/lcd/126b09525e7116330989fbcc",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "30989fbcc8354f6baad6455294de0120",
            "useduuid": "30989fbcc"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV040-实现任意大小字模",
        "date": "2025-09-27 19:37:13",
        "excerpt": "",
        "capture": "我们要是想显示不同大小的字符怎么办?重新生成不同大小的字模?这当然是可以的啦,但是吧,要是需要的大小有很多怎么办,比如说我们需要16x16的,32x32的,64x64的,......,这样的话,都生成数组,然后放在文件里嘛,中文也都做成字库嘛?这样其实是可以的,只要内存足够就行,但是这样其实是很浪费资源的,它们的字模都是一样的,但是仅仅就是大小不同,我们就不能用一张表,然后对字体进行缩放,得到其他大小的字模嘛?当然可以啦,下边就来学习一下这个字模缩放的流程啦。\n注意后边主要是以英文字模的缩放为例,来说明缩放的原理,我们使用的字模大小为宽16高16,对应到英文的话,就是宽8高16啦。\n 一、基本"
      },
      {
        "url": "/sdoc/advanced-chapter/display/lcd/126b0952576b3df0941e36ed.html",
        "relativePath": "/sdoc/30-进阶篇/04-显示屏/02-LCD/LV035-中英文的显示.html",
        "frontmatter": {
          "title": "LV035-中英文的显示",
          "date": "2025-09-27 19:19:15",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/advanced-chapter/display/lcd/126b0952576b3df0941e36ed",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "0941e36ed35b4da7a71acace5c8d2e0d",
            "useduuid": "0941e36ed"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV035-中英文的显示",
        "date": "2025-09-27 19:19:15",
        "excerpt": "",
        "capture": "一、字模\n 1. 什么是字模?\n前边我们已经了解了字符的编码,有了编码,我们就能在计算机中处理、存储字符了,但是如果计算机处理完字符后直接以编码的形式输出,人类将难以识别。因此计算机与人交互时,一般会把字符转化成人类习惯的表现形式进行输出,如显示、打印的时候。\n但是如果仅有字符编码,计算机还不知道该如何表达该字符,因为字符实际上是一个个独特的图形,计算机必须把字符编码转化成对应的字符图形人类才能正常识别,因此我们要给计算机提供字符的图形数据,这些数据就是字模,多个字模数据组成的文件也被称为字库。计算机显示字符时,根据字符编码与字模数据的映射关系找到它相应的字模数据,液晶屏根据字模数据显示该字符"
      },
      {
        "url": "/sdoc/advanced-chapter/display/lcd/126b095255800a53f67e99cc.html",
        "relativePath": "/sdoc/30-进阶篇/04-显示屏/02-LCD/LV030-字符编码简介.html",
        "frontmatter": {
          "title": "LV030-字符编码基础",
          "date": "2025-09-27 19:14:24",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/advanced-chapter/display/lcd/126b095255800a53f67e99cc",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "3f67e99cc1774328be76eff3ae429948",
            "useduuid": "3f67e99cc"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV030-字符编码基础",
        "date": "2025-09-27 19:14:24",
        "excerpt": "",
        "capture": "一、字符编码概述\n在计算机上,我们看到的字符“ A”可能长这样 :\n&lt;img src=\"./LV030-字符编码简介/img/image-20230525215626795.png\" alt=\"image-20230525215626795\" style=\"zoom:50%;\" /\n对于同一个 TXT 文件中的内容,我们在 Notepad++ 上选择不同字体时,字符显示的形状也可能不一样。  所以 TXT 文件中保存的是字符的核心:它的编码值。而 Notepad++ 上显示时,这些字符对应什么样的形状态,这是由字符文件决定的。\n编码值,字体是两个不一样的东西,比如 A 的编码值是 0x4"
      },
      {
        "url": "/sdoc/advanced-chapter/display/lcd/126b095253d9037570d31d42.html",
        "relativePath": "/sdoc/30-进阶篇/04-显示屏/02-LCD/LV025-LCD显示实例.html",
        "frontmatter": {
          "title": "LV025-LCD显示实例",
          "date": "2025-09-27 19:10:01",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/advanced-chapter/display/lcd/126b095253d9037570d31d42",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "570d31d42d894e208a1fb9d5c484e257",
            "useduuid": "570d31d42"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV025-LCD显示实例",
        "date": "2025-09-27 19:10:01",
        "excerpt": "",
        "capture": "这一节的笔记主要是LCD显示相关,不关注触摸屏相关引脚。\n 一、硬件原理图\n 1. 正点原子2.8寸LCD模块\n&lt;img src=\"./LV025-LCD显示实例/img/image-20230520165852112.png\" alt=\"image-20230520165852112\" style=\"zoom:50%;\" /\n上图是正点原子的2.8寸LCD模块的原理图,说真的,没看懂,不明白为什么模块原理图上跳过了D8和D9两根线,并且标号对应的时候要D0对应DB1这样子。这个图给我看自闭了,反正是没看懂,而且教程也没见说为什么这样。索性不看了,目前就看几个关键的引脚,这几个关键的引脚"
      },
      {
        "url": "/sdoc/advanced-chapter/display/lcd/126b09523c371707f0bd772f.html",
        "relativePath": "/sdoc/30-进阶篇/04-显示屏/02-LCD/LV020-FSMC模拟8080时序.html",
        "frontmatter": {
          "title": "LV020-FSMC模拟8080时序",
          "date": "2025-09-27 18:49:51",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/advanced-chapter/display/lcd/126b09523c371707f0bd772f",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "7f0bd772fcbd424ab2f5aaf94abf65ff",
            "useduuid": "7f0bd772f"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV020-FSMC模拟8080时序",
        "date": "2025-09-27 18:49:51",
        "excerpt": "",
        "capture": "一、FSMC简介\n\n 1. 简介\nILI9341的8080通讯接口时序可以由STM32使用普通I/O接口进行模拟,但这样效率太低,STM32提供了一种特别的控制方法——使用FSMC接口实现8080时序。\n&lt;img src=\"./LV020-FSMC模拟8080时序/img/image-20230519221727962.png\" alt=\"image-20230519221727962\" style=\"zoom:50%;\" /&gt;\n我们前边学习SRAM的时候了解到STM32的FSMC外设可以用于控制扩展的外部存储器,而MCU对液晶屏的操作实际上就是把显示数据写入到显存中,与控制存储器"
      },
      {
        "url": "/sdoc/advanced-chapter/display/lcd/126b095238ef12080fa9e2fc.html",
        "relativePath": "/sdoc/30-进阶篇/04-显示屏/02-LCD/LV016-IL9341简介.html",
        "frontmatter": {
          "title": "LV016-IL9341简介",
          "date": "2025-09-27 18:41:11",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/advanced-chapter/display/lcd/126b095238ef12080fa9e2fc",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "80fa9e2fc1c846ac9bfafe695ffc6b7d",
            "useduuid": "80fa9e2fc"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV016-IL9341简介",
        "date": "2025-09-27 18:41:11",
        "excerpt": "",
        "capture": "一、简介\nILI9341是奕力科技股份有限公司 (ilitek.com)的一款小尺寸驱动IC,我在官网没看到芯片手册,但是有些查datasheet的地方是可以查到的,这里就不写链接了。我在本地保存了一份:01ILI9341_DS.pdf\n它是一个支持分辨率为240x320点阵的a-TFT LCD 的262144(26万色)色单片驱动器。这个单片驱动器包含了一个720通道的源极驱动器(source driver),一个320通道的栅极驱动器(gate driver),自带一个172800字节(320x240x18/8)的GRAM用于显示240x320分辨率的图片数据。ILI9341提供8位/9位"
      },
      {
        "url": "/sdoc/advanced-chapter/display/lcd/126b095237661ce983ad47b1.html",
        "relativePath": "/sdoc/30-进阶篇/04-显示屏/02-LCD/LV015-ATK-MD0280模块.html",
        "frontmatter": {
          "title": "LV015-ATK-MD0280模块",
          "date": "2025-09-27 18:37:18",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/advanced-chapter/display/lcd/126b095237661ce983ad47b1",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "983ad47b1ccb49c59396418e90556b0c",
            "useduuid": "983ad47b1"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV015-ATK-MD0280模块",
        "date": "2025-09-27 18:37:18",
        "excerpt": "",
        "capture": "一、相关资料\n这一部分主要看一下我们有哪些资料可以看,注意这里的资料都是放在本地的笔记对应的文件夹中:\n- ATK-MD0280模块用户手册:正点原子ATK-MD0280模块用户手册.pdf\n- ATK-MD0280模块裸屏图:00ATK-MD0280裸屏尺寸图(钢化玻璃TP).pdf\n- ILI9341芯片手册:01ILI9341_DS.pdf\n- 触摸驱动芯片手册:04XPT2046.pdf\n 二、2.8寸LCD模块\n我使用的是正点原子的2.8寸LCD模块,后边也是以这个模块进行学习。\n 1. 屏幕简介\nATK-MD0280-V2.4(V2.4 是版本号,下面均以 ATK-MD0280 表"
      },
      {
        "url": "/sdoc/advanced-chapter/display/lcd/126b0951760b03320ea5c5be.html",
        "relativePath": "/sdoc/30-进阶篇/04-显示屏/02-LCD/LV010-液晶控制原理.html",
        "frontmatter": {
          "title": "LV010-液晶控制原理",
          "date": "2025-09-27 13:42:19",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/advanced-chapter/display/lcd/126b0951760b03320ea5c5be",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "20ea5c5be93445288eac3b57c2e84f66",
            "useduuid": "20ea5c5be"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV010-液晶控制原理",
        "date": "2025-09-27 13:42:19",
        "excerpt": "",
        "capture": "一、显示屏的组成\n下图是两种适合于STM32芯片使用的显示屏,我们以它为例讲解控制液晶屏的基本原理。\n&lt;img src=\"./LV010-液晶控制原理/img/LCD007.jpeg\" alt=\"适合STM32控制的显示屏实物图\" style=\"zoom: 33%;\" /\n这个完整的显示屏由液晶显示面板、电容触摸面板以及PCB底板构成。图中的触摸面板带有触摸控制芯片,该芯片处理触摸信号并通过引出的信号线与外部器件通讯, 触摸面板中间是透明的,它贴在液晶面板上面,一起构成屏幕的主体,触摸面板与液晶面板引出的排线连接到PCB底板上,根据实际需要, PCB底板上可能会带有“液晶控制器芯片”,图"
      },
      {
        "url": "/sdoc/advanced-chapter/display/lcd/126b0951740b3b3a3f69973e.html",
        "relativePath": "/sdoc/30-进阶篇/04-显示屏/02-LCD/LV001-LCD简介.html",
        "frontmatter": {
          "title": "LV001-LCD简介",
          "date": "2025-09-27 13:37:07",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/advanced-chapter/display/lcd/126b0951740b3b3a3f69973e",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "a3f69973ef4142428240aba5719aeeb0",
            "useduuid": "a3f69973e"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV001-LCD简介",
        "date": "2025-09-27 13:37:07",
        "excerpt": "",
        "capture": "一、显示屏基础\n显示器属于计算机的I/O设备,即输入输出设备。它是一种将特定电子信息输出到屏幕上再反射到人眼的显示工具。常见的有CRT显示器、液晶显示器、LED点阵显示器及OLED显示器。从第一个显示装置发明至今,已经快有百年历史。 在显示屏的发展中,依次出现了三大显示技术: CRT、LCD、 OLED,如图所示。  \n&lt;img src=\"./LV001-LCD简介/img/image-20230503183212724.png\" alt=\"image-20230503183212724\" style=\"zoom:50%;\" /\n 1. CRT显示屏\n1897年, 德国电气工程师、 发明"
      },
      {
        "url": "/sdoc/advanced-chapter/display/oled/126b09517279099247b327e5.html",
        "relativePath": "/sdoc/30-进阶篇/04-显示屏/01-OLED/LV010-8080时序驱动OLED.html",
        "frontmatter": {
          "title": "LV010-8080时序驱动OLED",
          "date": "2025-09-27 13:33:05",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/advanced-chapter/display/oled/126b09517279099247b327e5",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "247b327e5f1747919749deb8038e066d",
            "useduuid": "247b327e5"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV010-8080时序驱动OLED",
        "date": "2025-09-27 13:33:05",
        "excerpt": "",
        "capture": "本节笔记放在这里,主要是为了学习8080时序,为后边FSMC产生8080时序做铺垫,这一部分的笔记是用GPIO模拟8080时序,这样对8080时序的认识会更深刻一些。由于我没有8080并口的OLED模块,所以还是以正点原子的OLED模块来进行时序的模拟。\n 一、硬件原理图\n&lt;img src=\"./LV010-8080时序驱动OLED/img/image-20230516234228390.png\" alt=\"image-20230516234228390\" style=\"zoom:50%;\" /\n(1)CS: OLED 片选信号,对应 PD6。\n(2)WR:向 OLED 写入数据,对应 "
      },
      {
        "url": "/sdoc/advanced-chapter/display/oled/126b09516d6c2a948085516b.html",
        "relativePath": "/sdoc/30-进阶篇/04-显示屏/01-OLED/LV001-OLED简介.html",
        "frontmatter": {
          "title": "LV001-OLED简介",
          "date": "2025-09-27 13:20:12",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/advanced-chapter/display/oled/126b09516d6c2a948085516b",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "48085516b89044b2a637057cfaac3f5c",
            "useduuid": "48085516b"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV001-OLED简介",
        "date": "2025-09-27 13:20:12",
        "excerpt": "",
        "capture": "本节笔记放在这里,主要是为了学习8080时序,为后边FSMC产生8080时序做铺垫,这一部分的笔记是用GPIO模拟8080时序,这样对8080时序的认识会更深刻一些。这一节会涉及一些像素啊,显存啊什么的基本概念,笔记写在LCD屏幕学的相关笔记中了。平时我用的还是I2C或者SPI接口的OLED。\n 一、OLED简介\n 1. 简介\nOLED,即有机发光二极管(Organic Light-Emitting Diode),又称为有机电激光显示(Organic Electroluminesence Display, OELD)。OLED由于同时具备自发光,不需背光源、对比度高、厚度薄、视角广、反应速度快"
      },
      {
        "url": "/sdoc/advanced-chapter/ov7725/126b09516bd03c413cd356e8.html",
        "relativePath": "/sdoc/30-进阶篇/03-OV7725/LV020-OV7725简介.html",
        "frontmatter": {
          "title": "LV020-OV7725简介",
          "date": "2025-09-27 13:16:00",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/advanced-chapter/ov7725/126b09516bd03c413cd356e8",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "13cd356e84f447f3b52ee1a287368dce",
            "useduuid": "13cd356e8"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV020-OV7725简介",
        "date": "2025-09-27 13:16:00",
        "excerpt": "",
        "capture": "一、OV7725简介\n 1. CCD  Sensor与CMOS Sensor\n目前市场上采用的图像传感器(Sensor)主要有CCD与CMOS这两种。CCD Sensor的技术比较成熟,一致性较好,色彩还原逼真,在尺寸方面也有一定的优势,但是其工艺复杂、成本高、功耗大,像素提高难度大,技术遇到瓶颈。而CMOS Sensor制造工艺简单,成本相对较低,功耗小,开发简便,在现阶段有较大的发展空间。相关参数的对比如表所示。\n&lt;img src=\"./LV020-OV7725简介/img/image-20240114142822888.png\" alt=\"image-202401141428228"
      },
      {
        "url": "/sdoc/advanced-chapter/ov7725/126b09516b6c2fed98855250.html",
        "relativePath": "/sdoc/30-进阶篇/03-OV7725/LV010-SCCB协议简介.html",
        "frontmatter": {
          "title": "LV010-SCCB协议简介",
          "date": "2025-09-27 13:15:00",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/advanced-chapter/ov7725/126b09516b6c2fed98855250",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "d9885525026649bdb9a31be28b79a722",
            "useduuid": "d98855250"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV010-SCCB协议简介",
        "date": "2025-09-27 13:15:00",
        "excerpt": "",
        "capture": "一、SCCB是什么?\nSCCB(Serial Camera Control Bus,串行摄像头控制总线) 是 OmniVision 开发的一种总线协议, 且广泛被应用于 OV 系列图像传感器上。\nSCCB 协议与 IIC 协议十分相似, SCCB协议由两条信号线组成: SIO_C(类似 IIC 协议的 SCL) 和 SIO_D(类似 IIC 协议的 SDA)。与 IIC 协议一样, SCCB 协议也有起始信号和停止信号, 只不过与 IIC 协议不同的是, IIC协议在传输完 1 字节数据后,需要传输的接收方发送 1 比特的确认位,而 SCCB 协议一次性要传输 9 位数据, 前 8 位为读写的"
      },
      {
        "url": "/sdoc/advanced-chapter/ov7725/126b09516b08191a7bd0fd02.html",
        "relativePath": "/sdoc/30-进阶篇/03-OV7725/LV001-ATK-MC6625F模块简介.html",
        "frontmatter": {
          "title": "LV001-ATK-MC6625F模块简介",
          "date": "2025-09-27 13:14:00",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/advanced-chapter/ov7725/126b09516b08191a7bd0fd02",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "a7bd0fd0290345cfae6ad4ff74f043f7",
            "useduuid": "a7bd0fd02"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV001-ATK-MC6625F模块简介",
        "date": "2025-09-27 13:14:00",
        "excerpt": "",
        "capture": "一、ATK-MC6625F模块简介\nATK-MC7725F 模块一款高性能 30W 高清摄像头模块。 该模块采用 OmniVision 公司的 OV7725 摄像头传感器作为核心, OV7725 是一颗 1/4 英寸 CMOS VGA( 640*480)的图像传感器。 同时 ATK-MC7725F 模块集成了有源晶振和 FIFO 芯片, 这使得可以采用大部分的 MCU 控制该模块和读取图像数据。  \nATK-MC6625F 模块具有如下特点:\n- 集成有源晶振,无需外部提供时钟\n- 集成 FIFO 芯片,方便外部 MCU 读取图像\n- 支持 VGA、 QVGA 和从 CIF 到 40*30 的"
      },
      {
        "url": "/sdoc/peripheral/usb/126b095168b91d9fad5c2a07.html",
        "relativePath": "/sdoc/20-基本外设篇/60-USB/LV010-USB读卡器实例.html",
        "frontmatter": {
          "title": "LV010-USB读卡器实例",
          "date": "2025-09-27 13:08:09",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/usb/126b095168b91d9fad5c2a07",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "fad5c2a07ce14efe93e887b24a93fb47",
            "useduuid": "fad5c2a07"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV010-USB读卡器实例",
        "date": "2025-09-27 13:08:09",
        "excerpt": "",
        "capture": "一、实验说明\n学习 USB 时我们说过 USB 有很多的设备类,这一节的 USB 读卡器实际上是一个大容量存储设备(MSC: Mass Storage Class),本实验实现过程我们需要对 MSC 类实例化,即定义这个类可以操作的功能,上层应用通过 USBD_RegisterClass 函数,将此对象注册到 usbd 内核,它主要在 usbd_msc.c 源文件中实现它的各个成员函数。\n本实验中, STM32 作为设备连接到主机,我们需要使能 USB 外设,以便主机识别到 USB设备进行扫描,同时我们需要在软件上设计好 USB 枚举所需要的一些设备描述符和注册信息,配置对应的端点以用于 US"
      },
      {
        "url": "/sdoc/peripheral/usb/126b095167b12a8376012928.html",
        "relativePath": "/sdoc/20-基本外设篇/60-USB/LV001-USB简介.html",
        "frontmatter": {
          "title": "LV001-USB简介",
          "date": "2025-09-27 13:05:45",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/usb/126b095167b12a8376012928",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "3760129282bc45c68e9217915df4f46b",
            "useduuid": 376012928
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV001-USB简介",
        "date": "2025-09-27 13:05:45",
        "excerpt": "",
        "capture": "USB,即通用串行总线(Universal Serial Bus),包括 USB 协议和 USB 硬件两个方面,支持热插拔功能。现在日常生活的很多方面都离不开 USB 的应用,如充电和数据传输等场景。\nUSB 经过多次修改, 1996 年确定了初始规范版本 USB1.0,目前由非盈利组织 USBIF(Front Page | USB-IF)管理。 STM32 自带的 USB 符合USB2.0 规范,故 2.0 版本仍是学习的重点。  \n 一、USB简介\nUSB 本身的知识体系非常复杂,这里就简单介绍一下,想更系统地学习 USB 的知识可以参考《圈圈教你玩 USB》、塞普拉斯提供的《USB101"
      },
      {
        "url": "/sdoc/advanced-chapter/esp8266/126b095152fb04ead8380cb5.html",
        "relativePath": "/sdoc/30-进阶篇/02-ESP8266/LV020-ATK-MW8266模块使用实例.html",
        "frontmatter": {
          "title": "LV020-ATK-ESP8266使用实例",
          "date": "2025-09-27 12:52:43",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/advanced-chapter/esp8266/126b095152fb04ead8380cb5",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "ad8380cb587c446592ab6fa1ae7318fd",
            "useduuid": "ad8380cb5"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV020-ATK-ESP8266使用实例",
        "date": "2025-09-27 12:52:43",
        "excerpt": "",
        "capture": "一、硬件连接\nATK-MW8266D 模块可直接与正点原子战舰 STM32F103 开发板板载的 ATK 模块接口( ATK MODULE)进行连接,具体的连接关系,如下表所示:  \n&lt;img src=\"./LV020-ATK-MW8266模块使用实例/img/image-20240113094305951.png\" alt=\"image-20240113094305951\" style=\"zoom:50%;\" /\n注意,若要使用正点原子战舰 STM32F103 开发板的 ATK MODULE 接口连接ATK-MW8266D 模块,需要用跳线帽将开发板板载的 P8 接线端子的 PB10("
      },
      {
        "url": "/sdoc/advanced-chapter/esp8266/126b0951520814de18399844.html",
        "relativePath": "/sdoc/30-进阶篇/02-ESP8266/LV015-ESP8266固件烧录.html",
        "frontmatter": {
          "title": "LV015-ESP8266固件烧录",
          "date": "2025-09-27 12:50:00",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/advanced-chapter/esp8266/126b0951520814de18399844",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "e18399844bf344e3bb81cdc33db73395",
            "useduuid": "e18399844"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV015-ESP8266固件烧录",
        "date": "2025-09-27 12:50:00",
        "excerpt": "",
        "capture": "这里主要是学习esp8266_start_guide_1_.pdf (ai-thinker.com)这篇文档,这是安信可提供的一个ESSP8266的入门教程。这节用的图都是安信可官方的模块,我没有实际买,这里只是做个笔记学习用。\n 一、接线与模式\n 1. 典型接线图\n这里以ESP01为例:\n&lt;img src=\"./LV015-ESP8266固件烧录/img/image-20240112192441073.png\" alt=\"image-20240112192441073\" style=\"zoom:50%;\" /\n 2. 启动模式\n一般来讲是这样的:\n&lt;img src=\"./LV01"
      },
      {
        "url": "/sdoc/advanced-chapter/esp8266/126b095151472d621a6605a9.html",
        "relativePath": "/sdoc/30-进阶篇/02-ESP8266/LV010-AT指令.html",
        "frontmatter": {
          "title": "LV010-AT指令",
          "date": "2025-09-27 12:48:07",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/advanced-chapter/esp8266/126b095151472d621a6605a9",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "21a6605a91b34e7b87e3081f66267021",
            "useduuid": "21a6605a9"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV010-AT指令",
        "date": "2025-09-27 12:48:07",
        "excerpt": "",
        "capture": "一、ESSP-AT是什么?\nESP-AT 是乐鑫开发的可直接用于量产的物联网应用固件,旨在降低客户开发成本,快速形成产品。通过 ESP-AT 指令,您可以快速加入无线网络、连接云平台、实现数据通信以及远程控制等功能,真正的通过无线通讯实现万物互联。\nESP-AT 是基于 ESP-IDF 或 ESP8266_RTOS_SDK 实现的软件工程。它使 ESP 模组作为从机,MCU 作为主机。MCU 发送 AT 命令给 ESP 模组,控制 ESP 模组执行不同的操作,并接收 ESP 模组返回的 AT 响应。ESP-AT 提供了大量功能不同的 AT 命令,如 Wi-Fi 命令、TCP/IP 命令、Blu"
      },
      {
        "url": "/sdoc/advanced-chapter/esp8266/126b0951502d346ca9aa7929.html",
        "relativePath": "/sdoc/30-进阶篇/02-ESP8266/LV001-ESP8266模块简介.html",
        "frontmatter": {
          "title": "LV001-ESP8266模块简介",
          "date": "2025-09-27 12:45:25",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/advanced-chapter/esp8266/126b0951502d346ca9aa7929",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "ca9aa79298244701abe40ba6e8a3afb0",
            "useduuid": "ca9aa7929"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV001-ESP8266模块简介",
        "date": "2025-09-27 12:45:25",
        "excerpt": "",
        "capture": "这一节开始,我们来学习一下正点原子的ESP8266模块。\n 一、ESP8266?\n 1. ESP8266是什么?\nESP8266其实是由乐鑫公司推出的一款WIFI芯片,而国内的一些物联网公司基于乐鑫的ESP8266芯片开发出了许多WIFI模块,这些WIFI模块大多以ESP8266作为前缀命名,因此我们通常用ESP8266指ESP8266WIFI模块。\n&lt;img src=\"./LV001-ESP8266模块简介/img/image-20240108220855988.png\" alt=\"image-20240108220855988\" /\n平常使用较多的ESP8266WIFI模块是国内安信"
      },
      {
        "url": "/sdoc/basic/stm32pwr/126b095140443bc89b1ebe84.html",
        "relativePath": "/sdoc/10-基础篇/70-STM32电源管理/LV010-三种模式实现.html",
        "frontmatter": {
          "title": "LV010-三种模式实现",
          "date": "2025-09-27 12:04:52",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/basic/stm32pwr/126b095140443bc89b1ebe84",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "89b1ebe841074780aa0a2abaac3caa24",
            "useduuid": "89b1ebe84"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV010-三种模式实现",
        "date": "2025-09-27 12:04:52",
        "excerpt": "",
        "capture": "一、通用配置\n 1. 硬件原理图\n硬件主要使用到了按键、 LED 以及使用串口输出调试信息。 \n&lt;img src=\"./LV010-三种模式实现/img/image-20230610191800976.png\" alt=\"image-20230610191800976\" style=\"zoom: 33%;\" /\n 2. STM32CubeMX配置\n 2.1 时钟树\n&lt;img src=\"./LV010-三种模式实现/img/image-20230610191131427.png\" alt=\"image-20230610191131427\" style=\"zoom: 25%;\" /&g"
      },
      {
        "url": "/sdoc/basic/stm32pwr/126b09513f17393c50358806.html",
        "relativePath": "/sdoc/10-基础篇/70-STM32电源管理/LV001-电源管理简介.html",
        "frontmatter": {
          "title": "LV001-电源管理简介",
          "date": "2025-09-27 12:01:51",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/basic/stm32pwr/126b09513f17393c50358806",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "c503588060cf485a965221f48977e91d",
            "useduuid": "c50358806"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV001-电源管理简介",
        "date": "2025-09-27 12:01:51",
        "excerpt": "",
        "capture": "一、STM32电源管理\n 1. 电源管理简介\n电源对电子设备的重要性不言而喻,它是保证系统稳定运行的基础,而保证系统能稳定运行后,又有低功耗的要求。\n在很多应用场合中都对电子设备的功耗要求非常苛刻,如某些传感器信息采集设备,仅靠小型的电池提供电源,要求工作长达数年之久,且期间不需要任何维护;由于智慧穿戴设备的小型化要求,电池体积不能太大导致容量也比较小,所以也很有必要从控制功耗入手,提高设备的续行时间。\n因此, STM32 有专门的电源管理外设监控电源并管理设备的运行模式,确保系统正常运行,并尽量降低器件的功耗。  \n 2. 电源系统结构\n为了方便进行电源管理, STM32把它的外设、内核等模"
      },
      {
        "url": "/sdoc/peripheral/rtc/126b09511eac35920a3f191c.html",
        "relativePath": "/sdoc/20-基本外设篇/55-RTC时钟/LV001-RTC简介.html",
        "frontmatter": {
          "title": "LV001-RTC简介",
          "date": "2025-09-27 11:18:52",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/rtc/126b09511eac35920a3f191c",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "20a3f191c6054d8d9f5fd53ff7b809de",
            "useduuid": "20a3f191c"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV001-RTC简介",
        "date": "2025-09-27 11:18:52",
        "excerpt": "",
        "capture": "一、RTC简介\n实时时钟( Real Time Clock, RTC), 是一个可以不使用系统主电源供电的定时器。在系统主电源断开的情况下,依靠纽扣电池供电继续计时,可以维持几个月到几年的持续工作。在系统恢复主电源工作时, 为系统提供日历、时间信息。\n&lt;img src=\"./LV001-RTC简介/img/image-20230611142452003.png\" alt=\"image-20230611142452003\" style=\"zoom:50%;\" /\n比如台式电脑主机, 必须接电源才能工作, 此时可以正常显示当前日期、时间。电脑关机一段时间后,重新开机,系统没有联网,也能正确显"
      },
      {
        "url": "/sdoc/advanced-chapter/file-system/126b09511d060b54b7d725e9.html",
        "relativePath": "/sdoc/30-进阶篇/01-文件系统/LV025-FATFS中自定义的一些函数.html",
        "frontmatter": {
          "title": "LV025-FATFS中自定义的一些函数",
          "date": "2025-09-27 11:14:30",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/advanced-chapter/file-system/126b09511d060b54b7d725e9",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "4b7d725e9ba54c78945189a9341e3b34",
            "useduuid": "4b7d725e9"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV025-FATFS中自定义的一些函数",
        "date": "2025-09-27 11:14:30",
        "excerpt": "",
        "capture": "最终的代码可以看这里:STM32F103-Prj: STM32学习使用(STM32CubeMX+Makefile+VScode+J-Flash) (gitee.com)\n 一、文件系统结构体定义\n为了方便管理文件系统,定义一个结构体:\n```c\ntypedef struct __ex_fatfs\n{\n    FATFS *fs[FF_VOLUMES]; // 逻辑磁盘工作区.\n    BYTE *work;  // 挂载的时候用\n    FIL *file;             // 文件1\n    FIL *ftemp;            // 文件2\n    UINT br;   "
      },
      {
        "url": "/sdoc/advanced-chapter/file-system/126b09511b702501a47f120c.html",
        "relativePath": "/sdoc/30-进阶篇/01-文件系统/LV020-基于SD卡移植FATFS.html",
        "frontmatter": {
          "title": "LV015-基于SD卡移植FATFS",
          "date": "2025-09-27 11:10:24",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/advanced-chapter/file-system/126b09511b702501a47f120c",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "1a47f120cd8c41b6ab06d05da2ace352",
            "useduuid": "1a47f120c"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV015-基于SD卡移植FATFS",
        "date": "2025-09-27 11:10:24",
        "excerpt": "",
        "capture": "我们先来看一下以SD卡为存储介质的FatFs文件系统的移植。另外就是,我后来移植的过程中,发现我们在使用STM32CubeMX配置SDIO的时候不要开SDIO和DMA中断,不然SD卡读写是有问题的,但是吧,移植好文件系统后,不知道为什么,怎么都跑不起来,具体是哪的影响还不清楚,后边知道了再补充。\n 一、底层读写\n 1. 初始化\n首先我们需要初始化SD卡,这里还是使用STM32CubeMX来配置的SDIO,所以初始化就如下函数所示:\n```c\nvoid MX_SDIO_SD_Init(void);\n```\n【函数说明】这个函数是完成SDIO的初始化,也就完成了对SD卡的初始化。注意这里有两个坑,"
      },
      {
        "url": "/sdoc/advanced-chapter/file-system/126b0951078a03391bda267a.html",
        "relativePath": "/sdoc/30-进阶篇/01-文件系统/LV015-基于SPIFLASH移植FATFS.html",
        "frontmatter": {
          "title": "LV015-基于SPIFLASH移植FATFS",
          "date": "2025-09-27 10:59:30",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/advanced-chapter/file-system/126b0951078a03391bda267a",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "91bda267a4934867a0b05673bbc3ef13",
            "useduuid": "91bda267a"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV015-基于SPIFLASH移植FATFS",
        "date": "2025-09-27 10:59:30",
        "excerpt": "",
        "capture": "我们先来看一下以SPI FLASH为存储介质的FatFs文件系统的移植。\n 一、底层读写\n 1. 初始化\n首先我们需要初始化SPI FLASH,在这里我使用的是W25Q128,由于我使用的是STM32CubeMX来配置的SPI,所以初始化就如下函数所示:\n```c\n/* SPI2 init function */\nvoid MX_SPI2_Init(void);\n```\n 2. 获取SPI FLASH器件ID\n这一步其实本不是必须,但是由于代码支持了其他型号的SPI FLASH,所以这一步也就成了必要的步骤,其实也有好处,那就是可以通过读取ID来判断我们的SPI FLASH是否已经初始化完成:"
      },
      {
        "url": "/sdoc/advanced-chapter/file-system/126b095105912fc87e8eb3f7.html",
        "relativePath": "/sdoc/30-进阶篇/01-文件系统/LV010-FATFS简介.html",
        "frontmatter": {
          "title": "LV010-FATFS简介",
          "date": "2025-09-27 10:54:25",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/advanced-chapter/file-system/126b095105912fc87e8eb3f7",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "87e8eb3f76b14573a4c0856bf2257669",
            "useduuid": "87e8eb3f7"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV010-FATFS简介",
        "date": "2025-09-27 10:54:25",
        "excerpt": "",
        "capture": "二、 FatFs简介\n 1. FatFs是什么?\nFATFS 是一个完全免费开源的 FAT 文件系统模块,专门为小型的嵌入式系统而设计。它完全用标准 C 语言编写,所以具有良好的硬件平台独立性,可以移植到 8051、 PIC、 AVR、 SH、Z80、 H8、 ARM 等系列单片机上而只需做简单的修改。它支持 FATl2、 FATl6 和 FAT32,支持多个存储媒介;有独立的缓冲区,可以对多个文件进行读/写,并特别对 8 位单片机和 16 位单片机做了优化。\n 2. 它有什么特点\n(1)Windows 兼容的 FAT 文件系统(支持 FAT12/FAT16/FAT32)\n(2)与平台无关,移"
      },
      {
        "url": "/sdoc/advanced-chapter/file-system/126b0951040033e78ccbca10.html",
        "relativePath": "/sdoc/30-进阶篇/01-文件系统/LV001-文件系统简介.html",
        "frontmatter": {
          "title": "LV001-文件系统简介",
          "date": "2025-09-27 10:50:24",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/advanced-chapter/file-system/126b0951040033e78ccbca10",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "78ccbca106d046ecaee2de5e4c1f5766",
            "useduuid": "78ccbca10"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV001-文件系统简介",
        "date": "2025-09-27 10:50:24",
        "excerpt": "",
        "capture": "一、直接存储的弊端?\n我们前边已经学习了SPI FLASH和SD卡的读写,我们可以使用SPI FLASH直接存储数据,当需要记录字符“STM32 SPI FLASH” 时。 可以把这些文字转化成ASCII码,存储在数组中,然后调用SPI_FLASH_BufferWrite函数,把数组内容写入到SPI Flash芯片的指定地址上,在需要的时候从该地址把数据读取出来,再对读出来的数据以ASCII码的格式进行解读。  \n&lt;img src=\"./LV001-文件系统简介/img/image-20230513212219299.png\" alt=\"image-20230513212219299\" "
      },
      {
        "url": "/sdoc/peripheral/sdio/126b095100d21af60c8ed17e.html",
        "relativePath": "/sdoc/20-基本外设篇/50-SDIO/LV025-读写SD卡实例.html",
        "frontmatter": {
          "title": "LV025-读写SD卡实例",
          "date": "2025-09-27 10:42:10",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/sdio/126b095100d21af60c8ed17e",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "60c8ed17e9a9490aaf1efe2014ac5b67",
            "useduuid": "60c8ed17e"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV025-读写SD卡实例",
        "date": "2025-09-27 10:42:10",
        "excerpt": "",
        "capture": "一、硬件原理图\n我使用的是正点原子战舰V3的开发板,硬件连接如下图:\n&lt;img src=\"./LV025-读写SD卡实例/img/image-20230512193905411.png\" alt=\"image-20230512193905411\" style=\"zoom:50%;\" /\n 二、STM32CubeMX配置\n像LED、按键和串口的配置这里就不再赘述,这里只写SDIO相关配置。注意,这一部分中的中断和DMA相关配置是作为笔记写在这里,后边的测试函数并没有使用DMA以及中断相关的内容,都是使用的查询方式,当使用查询方式,但是又开启了DMA以及相关中断的时候,数据读写可能会失败,这"
      },
      {
        "url": "/sdoc/peripheral/sdio/126b0951000d2a75b964fa55.html",
        "relativePath": "/sdoc/20-基本外设篇/50-SDIO/LV020-STM32的SDIO.html",
        "frontmatter": {
          "title": "LV020-STM32的SDIO",
          "date": "2025-09-27 10:40:13",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/sdio/126b0951000d2a75b964fa55",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "5b964fa55b1c49f2849632ac18e58758",
            "useduuid": "5b964fa55"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV020-STM32的SDIO",
        "date": "2025-09-27 10:40:13",
        "excerpt": "",
        "capture": "本篇文档再看SD卡规范的时候就以文档Physical Layer Simplified Specification v2.0为主啦,因为STM32最高只支持2.0协议的SD卡。\n 一、SDIO简介\n 1. 简介\nSDIO,全称: Secure Digital Input and Output ,即安全数字输入输出接口。它是在SD卡接口的基础上发展而来,它可以兼容之前的SD卡,并可以连接SDIO接口设备,比如:蓝牙、WIFI、照相机等。\nSDIO和SD卡规范间的一个重要区别是增加了低速标准。低速卡的目标应用是以最小的硬件开支支持低速I/ O能力。低速卡支持类似调制解调器、条码扫描仪和GPS接收器"
      },
      {
        "url": "/sdoc/peripheral/sdio/126b0950ff013d660d235356.html",
        "relativePath": "/sdoc/20-基本外设篇/50-SDIO/LV015-SD卡的操作.html",
        "frontmatter": {
          "title": "LV015-SD卡的操作",
          "date": "2025-09-27 10:37:45",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/sdio/126b0950ff013d660d235356",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "60d235356a8a41c6b5be0b1b1d22ed03",
            "useduuid": "60d235356"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV015-SD卡的操作",
        "date": "2025-09-27 10:37:45",
        "excerpt": "",
        "capture": "一、SD卡命令\nSD命令由主机发出,以广播命令和寻址命令为例,广播命令是针对与SD主机总线连接的所有从设备发送的,寻址命令是指定某个地址设备进行命令传输。这一章的内容我们可以参考文档 Physical Layer Simplified Specification v9.0 的 4.7 Commands  章节。 \n 1. 命令格式\nSD命令格式固定为48bit,都是通过CMD线连续传输的, 数据线不参与。  \n&lt;img src=\"./LV015-SD卡的操作/img/image-20230510194931239.png\" alt=\"image-20230510194931239\" st"
      },
      {
        "url": "/sdoc/peripheral/sdio/126b0950fe110bc81c4d2fd3.html",
        "relativePath": "/sdoc/20-基本外设篇/50-SDIO/LV001-SD卡简介.html",
        "frontmatter": {
          "title": "LV001-SD卡简介",
          "date": "2025-09-27 10:35:05",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/sdio/126b0950fe110bc81c4d2fd3",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "81c4d2fd3b3049a1a63dd12e12b5a3fa",
            "useduuid": "81c4d2fd3"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV001-SD卡简介",
        "date": "2025-09-27 10:35:05",
        "excerpt": "",
        "capture": "这篇笔记主要看的是文档 Physical Layer Simplified Specification v9.0 ,但其实应该看文档Physical Layer Simplified Specification v2.0可能会更好一些,虽然他们基本是一样的(因为后边好像说是STM32做多支持到2.0版本的SD卡)。\n 一、SD卡简介\n 1. 什么是SD卡?\n SD卡(Secure Digital Memory Card)即:安全数码卡,它是在MMC的基础上发展而来,是一种基于半导体快闪记忆器的新一代记忆设备,是SD协会开发的一种专有 的非易失性 存储卡格式,用于便携式设备。由于它体积小、数据传"
      },
      {
        "url": "/sdoc/peripheral/dma/126b0950fc960317c7b64826.html",
        "relativePath": "/sdoc/20-基本外设篇/40-DMA/LV010-DMA使用实例.html",
        "frontmatter": {
          "title": "LV010-DMA使用实例",
          "date": "2025-09-27 10:31:26",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/dma/126b0950fc960317c7b64826",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "7c7b6482620b4698a5eac4b6e449f631",
            "useduuid": "7c7b64826"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV010-DMA使用实例",
        "date": "2025-09-27 10:31:26",
        "excerpt": "",
        "capture": "这里的实例都是通过STM32CubeMX软件进行配置。\n 一、存储器到存储器\nFLASH to SRAM,把内部FLASH的数据传输到内部的SRAM。在这里相当于将FLASH当做外设,将SRAM作为存储器,将数据从外设传输到存储器  。一般步骤如下:\n(1)使能 DMA 时钟;\n(2)配置 DMA 数据参数;\n(3)使能 DMA,进行传输;\n(4)等待传输完成,并对源数据和目标地址数据进行比较。  \n 1. STM32CubeMX配置\n&lt;img src=\"./LV010-DMA使用实例/img/image-20230505195655829.png\" alt=\"image-2023050"
      },
      {
        "url": "/sdoc/peripheral/dma/126b0950fbc52669af52caac.html",
        "relativePath": "/sdoc/20-基本外设篇/40-DMA/LV001-DMA简介.html",
        "frontmatter": {
          "title": "LV001-DMA简介",
          "date": "2025-09-27 10:29:17",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/dma/126b0950fbc52669af52caac",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "9af52caac91c42b1b28d2e09c22f8d43",
            "useduuid": "9af52caac"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV001-DMA简介",
        "date": "2025-09-27 10:29:17",
        "excerpt": "",
        "capture": "一、DMA简介\n 1. 简介\nDMA,即 Direct Memory Access,直接存储器访问。是单片机的一个外设,它的主要功能是用来搬数据,但是不需要占用 CPU,即在传输数据的时候, CPU 可以干其他的事情,好像是多线程一样。数据传输支持从外设到存储器或者存储器到存储器,这里的存储器可以是 SRAM 或者是 FLASH。\n我们知道CPU根据代码内容执行指令,这些众多指令中,有的用于计算、有的用于控制程序、有的用于转移数据等。 其中转移数据的指令,尤其是转移大量数据,会占用大量CPU资源。  例如把外设A的数据,传给外设B,这种情况其实不需要CPU一直参与,只需在A、 B之间创建个通道"
      },
      {
        "url": "/sdoc/peripheral/spi/126b0950f849211ff053e7ff.html",
        "relativePath": "/sdoc/20-基本外设篇/35-SPI/LV015-SPI读写W25QXXX实例.html",
        "frontmatter": {
          "title": "LV015-SPI读写W25QXXX实例",
          "date": "2025-09-27 10:20:25",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/spi/126b0950f849211ff053e7ff",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "ff053e7ff3e247358beec3bab1ba61de",
            "useduuid": "ff053e7ff"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV015-SPI读写W25QXXX实例",
        "date": "2025-09-27 10:20:25",
        "excerpt": "",
        "capture": "一、一般步骤\n通过SPI读写外部FLASH的一般步骤如下:\n(1)初始化通讯使用的目标引脚及端口时钟;\n(2)使能 SPI 外设的时钟;\n(3)配置 SPI 外设的模式、地址、速率等参数并使能 SPI 外设;\n(4)编写基本 SPI 按字节收发的函数;\n(5)编写对 FLASH 擦除及读写操作的的函数;\n(6)编写测试程序,对读写数据进行校验。  \n 二、硬件原理图\n&lt;img src=\"./LV015-SPI读写W25QXXX实例/img/image-20230507205517724.png\" alt=\"image-20230507205517724\" style=\"zoom:50%;"
      },
      {
        "url": "/sdoc/peripheral/spi/126b0950f64a0b5a3fbcba93.html",
        "relativePath": "/sdoc/20-基本外设篇/35-SPI/LV010-W25QXXX简介.html",
        "frontmatter": {
          "title": "LV010-W25QXXX简介",
          "date": "2025-09-27 10:15:14",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/spi/126b0950f64a0b5a3fbcba93",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "a3fbcba93d1642329a28cddcb65ad8e8",
            "useduuid": "a3fbcba93"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV010-W25QXXX简介",
        "date": "2025-09-27 10:15:14",
        "excerpt": "",
        "capture": "一、简介\nEEPROM和Flash的本质上是一样的, 都用于保存数据,Flash包括MCU内部的Flash和外部扩展的Flash,我使用的开发板的W25Q128就是一个SPI接口的外部NOR Flash。从功能上, Flash通常存放运行代码,运行过程中不会修改,而EEPROM存放用户数据,可能会反复修改。 从结构上, Flash按扇区操作, EEPROM通常按字节操作。  \nW25Q128是华邦的一款SPI接口 NOR FLASH 芯片,我看我使用的开发板上使用的型号是W25Q128JV,我们可以在这里找到它的芯片手册:W25Q128JV-datasheet。\n我们看芯片手册的开头,有这么几"
      },
      {
        "url": "/sdoc/peripheral/spi/126b0950f4ae14889c830ae3.html",
        "relativePath": "/sdoc/20-基本外设篇/35-SPI/LV001-STM32的SPI.html",
        "frontmatter": {
          "title": "LV001-STM32的SPI",
          "date": "2025-09-27 10:11:02",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/spi/126b0950f4ae14889c830ae3",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "89c830ae3a594952be17b5abc6bbb737",
            "useduuid": "89c830ae3"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV001-STM32的SPI",
        "date": "2025-09-27 10:11:02",
        "excerpt": "",
        "capture": "一、SPI简介\n这一部分可以查看笔记《60-通信专题/30-SPI/LV001-SPI简介.md》。\n 二、STM32的SPI外设\n 1. 简介\nSTM32 的 SPI 外设可用作通讯的主机及从机,支持最高的 SCK 时钟频率为 fpclk/2 (STM32F103 型号的芯片默认 f:sub:pclk1 为 36MHz, fpclk2 为72MHz),完全支持 SPI 协议的 4 种模式,数据帧长度可设置为 8 位或 16 位,可设置数据 MSB 先行或 LSB 先行。它还支持双线全双工、双线单向以及单线模式。其中双线单向模式可以同时使用 MOSI 及 MISO 数据线向一个方向传输数据,可"
      },
      {
        "url": "/sdoc/communication/can/126b0950f34624bdf8f7407f.html",
        "relativePath": "/sdoc/60-通信专题/40-CAN/LV001-CAN通信简介.html",
        "frontmatter": {
          "title": "LV001-CAN通信简介",
          "date": "2025-09-27 10:07:42",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/communication/can/126b0950f34624bdf8f7407f",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "df8f7407fc324becb0237697f4ea8f9c",
            "useduuid": "df8f7407f"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV001-CAN通信简介",
        "date": "2025-09-27 10:07:42",
        "excerpt": "",
        "capture": "一、CAN简介\n 1. CAN\n控制器局域网( Controller Area Network, CAN) ,是由德国BOSCH(博世)公司开发, 是目前国际上应用最为广泛的现场总线之一。 其特点是可拓展性好,可承受大量数据的高速通信, 高度稳定可靠,因此常应用于汽车电子领域、工业自动化、医疗设备等高要求环境。  \n它是 ISO 国际标准化的串行通信协议。在当前的汽车产业中,出于对安全性、舒适性、方便性、低公害、低成本的要求,各种各样的电子控制系统被开发了出来。由于这些系统之间通信所用的数据类型及对可靠性的要求不尽相同,由多条总线构成的情况很多,线束的数量也随之增加。为适应“减少线束的数量”、"
      },
      {
        "url": "/sdoc/communication/serial-port/126b0950f287303e7c68cbb5.html",
        "relativePath": "/sdoc/60-通信专题/10-串口/LV030-RS485简介.html",
        "frontmatter": {
          "title": "LV030-RS485简介",
          "date": "2025-09-27 10:05:51",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/communication/serial-port/126b0950f287303e7c68cbb5",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "e7c68cbb501d41a4be750e720e3a5e0a",
            "useduuid": "e7c68cbb5"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV030-RS485简介",
        "date": "2025-09-27 10:05:51",
        "excerpt": "",
        "capture": "一、RS485简介\nRS485是美国电子工业协会( Electronic Industries Association, EIA)于1983年发布的串行通信接口标准,经通讯工业协会( TIA)修订后命名为TIA/EIA-485-A。  485(一般称作RS485/EIA-485)是隶属于OSI模型物理层的电气特性规定为2线,半双工,多点通信的标准。用缆线两端的电压差值来表示传递信号。RS485仅仅规定了接受端和发送端的电气特性。它没有规定或推荐任何数据协议。\nRS485比RS232晚出现20多年,很多RS232的缺点,在RS485上有了改进。RS232的电平从-15V至+15V, 较高的电平值"
      },
      {
        "url": "/sdoc/communication/serial-port/126b0950f26b1afbd6db3885.html",
        "relativePath": "/sdoc/60-通信专题/10-串口/LV020-RS232简介.html",
        "frontmatter": {
          "title": "LV020-RS232简介",
          "date": "2025-09-27 10:05:23",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/communication/serial-port/126b0950f26b1afbd6db3885",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "bd6db38856214d8db0d0697d94245e7d",
            "useduuid": "bd6db3885"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV020-RS232简介",
        "date": "2025-09-27 10:05:23",
        "excerpt": "",
        "capture": "一、RS232简介\nRS232是美国电子工业协会( Electronic Industries Association, EIA) 于1962年发布的串行通信接口标准,其中RS为英文“ Recomend Standard”的缩写, 中文翻译为“ 推荐标准”, 232为标识号。该标准对串行通信的物理接口及逻辑电平都做了规定, 其输出的电平称为RS232电平。早期常见于个人计算机上,是计算机通讯接口之一。现如今在个人计算机上已比较少见, 但在一些工控设备依旧比较多。\n最简单的RS232通信由三条数据线组成,即TXD、 RXD和GND。 RS232采用负逻辑电平,即-15V ~ -3V代表逻辑“ 1"
      },
      {
        "url": "/sdoc/communication/spi/126b0950dceb1d850b1e36d8.html",
        "relativePath": "/sdoc/60-通信专题/30-SPI/LV001-SPI简介.html",
        "frontmatter": {
          "title": "LV001-SPI简介",
          "date": "2025-09-27 09:50:19",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/communication/spi/126b0950dceb1d850b1e36d8",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "50b1e36d86eb4c0e85c11fe350fcd877",
            "useduuid": "50b1e36d8"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV001-SPI简介",
        "date": "2025-09-27 09:50:19",
        "excerpt": "",
        "capture": "一、 SPI协议简介\n 1. 什么是SPI?\nSPI 协议,Serial Peripheral Interface  ,即串行外围设备接口, 是由摩托罗拉公司提出的通讯协议( Motorola) 在1980前后提出的一种全双工同步串行通信接口,它用于MCU与各种外围设备以串行方式进行通信以交换信息,通信速度最高可达25MHz以上。SPI接口主要应用在EEPROM、 FLASH、实时时钟、网络控制器、 OLED显示驱动器、 AD转换器,数字信号处理器、数字信号解码器等与MCU间要求通讯速率较高的场合 。\nSPI,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管"
      },
      {
        "url": "/sdoc/basic/stm32memory/126b0941431c016e4bdd2a68.html",
        "relativePath": "/sdoc/10-基础篇/60-STM32的内存/LV001-STM32内存简介.html",
        "frontmatter": {
          "title": "LV001-STM32内存简介",
          "date": "2025-09-26 07:26:04",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/basic/stm32memory/126b0941431c016e4bdd2a68",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "e4bdd2a68030419b91dea7af452724aa",
            "useduuid": "e4bdd2a68"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV001-STM32内存简介",
        "date": "2025-09-26 07:26:04",
        "excerpt": "",
        "capture": "其实断断续续的,STM32启动文件、启动方式、程序组成、map文件、sct文件、sram、内部flash都大概已经了解过了,这里进行总结,从stm32启动开始,到程序跑起来,这中间究竟是怎么个过程。\n\n 一、单片机的启动\n&lt;img src=\"./LV001-STM32内存简介/img/image-20251008084514529.png\" alt=\"image-20251008084514529\" style=\"zoom:50%;\" /&gt;\n关于存储器映像,可以看 10-基础篇/10-STM32基础/LV045-STM32存储器系统.md\n关于启动方式,我们可以看 10-基础篇/2"
      },
      {
        "url": "/sdoc/basic/stm32flash/126b0934555e1e98aa9081c5.html",
        "relativePath": "/sdoc/10-基础篇/50-STM32内部FLASH/LV010-FLASH操作流程.html",
        "frontmatter": {
          "title": "LV010-FLASH操作流程",
          "date": "2025-09-25 22:53:10",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/basic/stm32flash/126b0934555e1e98aa9081c5",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "8aa9081c5bfb4658bc14302518ab96b3",
            "useduuid": "8aa9081c5"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV010-FLASH操作流程",
        "date": "2025-09-25 22:53:10",
        "excerpt": "",
        "capture": "我这里使用的是STM32CubeMX来配置生成工程,使用的就是HAL库,由于内部Flash不需要我们来做初始化,所以软件不用配置,我们直接调用相应的驱动函数即可。这些可以操作内部Flash的函数声明都存在于 以下几个文件中:\n```c\nstm32f1xx_hal_flash_ex.h\nstm32f1xx_hal_flash.h \nstm32f1xx_hal_flash_ex.c\nstm32f1xx_hal_flash.c \n```\n关于Flash的相关资料,ST官方有另外的文档,叫做STM32F10xxx闪存编程手册,英文版在这里:STM32F10xxx Flash memory microc"
      },
      {
        "url": "/sdoc/basic/stm32flash/126b09345207167f3ed95339.html",
        "relativePath": "/sdoc/10-基础篇/50-STM32内部FLASH/LV001-内部FLASH简介.html",
        "frontmatter": {
          "title": "LV001-内部FLASH简介",
          "date": "2025-09-25 22:44:55",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/basic/stm32flash/126b09345207167f3ed95339",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "f3ed95339a054335bd7861fbbdfca984",
            "useduuid": "f3ed95339"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV001-内部FLASH简介",
        "date": "2025-09-25 22:44:55",
        "excerpt": "",
        "capture": "一、内部FLASH\n这里了解一下内部Flash的一些内容,并不涉及对内部Flash读写等相关操作。\n 1. FLASH\n 简介\nflash是存储芯片的一种,通过特定的程序可以修改里面的数据。FLASH在电子以及半导体领域内往往表示 Flash Memory 的意思,即平时所说的“闪存”,全名叫 Flash EEPROM Memory。它结合了ROM和RAM的长处,不仅具备电子可擦除可编程(EEPROM)的性能,还可以快速读取数据(NVRAM的优势),使数据不会因为断电而丢失。\n在STM32芯片内部有一个FLASH存储器,它主要用于存储代码,它是一种nor flash。我们在电脑上编写好应用程序"
      },
      {
        "url": "/sdoc/peripheral/i2c/126b09344f37186302faabd7.html",
        "relativePath": "/sdoc/20-基本外设篇/30-I2C/LV015-AT24C02使用实例.html",
        "frontmatter": {
          "title": "LV015-AT24C02使用实例",
          "date": "2025-09-25 22:37:35",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/i2c/126b09344f37186302faabd7",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "302faabd7f05494cbdcffb39c1c91164",
            "useduuid": "302faabd7"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV015-AT24C02使用实例",
        "date": "2025-09-25 22:37:35",
        "excerpt": "",
        "capture": "一、硬件原理图\n&lt;img src=\"./LV015-AT24C02使用实例/img/image-20230507133622454.png\" alt=\"image-20230507133622454\" style=\"zoom:50%;\" /\n可以看到这里的AT24C02接在了PB6和PB7,也就是I2C1上边。\n 二、物理I2C读写AT24C02\n一般步骤如下:\n(1)配置通讯使用的目标引脚为开漏模式;\n(2)使能 I2C 外设的时钟;\n(3)配置 I2C 外设的模式、地址、速率等参数并使能 I2C 外设;\n(4)编写基本 I2C 按字节收发的函数;  \n(5)编写读写 EEPROM 存"
      },
      {
        "url": "/sdoc/peripheral/i2c/126b09344d8f021f00cacd6c.html",
        "relativePath": "/sdoc/20-基本外设篇/30-I2C/LV010-AT24C02简介.html",
        "frontmatter": {
          "title": "LV010-AT24C02简介",
          "date": "2025-09-25 22:33:11",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/i2c/126b09344d8f021f00cacd6c",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "f00cacd6ccbd4a459325107dc47b447a",
            "useduuid": "f00cacd6c"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV010-AT24C02简介",
        "date": "2025-09-25 22:33:11",
        "excerpt": "",
        "capture": "一、EEPROM简介\nEEPROM (Electrically Erasable Programmable read only memory)是指带电可擦可编程只读存储器。是一种掉电后数据不丢失的存储芯片。 EEPROM 可以在电脑上或专用设备上擦除已有信息,重新编程。一般用在即插即用。\n我们这一节的笔记主要是关于AT24C02的使用,它是一个串行电可擦除和可编程只读存储器(EEPROM),总容量是256(2K/8)个字节,通过IIC通信。它是 Atmel 公司的一款芯片,我们我使用的战舰V3的开发板上时AT24C02BN,我们可以在这里找到它的数据手册:AT24C01A/02/04/08/1"
      },
      {
        "url": "/sdoc/peripheral/i2c/126b09344c01323883ac1ab4.html",
        "relativePath": "/sdoc/20-基本外设篇/30-I2C/LV001-STM32的I2C.html",
        "frontmatter": {
          "title": "LV001-STM32的I2C",
          "date": "2025-09-25 22:29:13",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/i2c/126b09344c01323883ac1ab4",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "883ac1ab454e45c8903061818823ca7f",
            "useduuid": "883ac1ab4"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV001-STM32的I2C",
        "date": "2025-09-25 22:29:13",
        "excerpt": "",
        "capture": "一、I2C简介\n这一部分可以查看笔记60-通信专题/01-I2C协议/LV001-I2C简介.md,这篇笔记主要是关于I2C的物理层协议,读写时序以及各个信号的说明包括对各信号的模拟。\n 二、STM32的物理I2C\n 1. 物理I2C框图\n这一部分我们可以查看STM32中文参考手册的24 I2C接口一节:\n&lt;img src=\"./LV001-STM32的I2C/img/image-20230507110330416.png\" alt=\"image-20230507110330416\" style=\"zoom:50%;\" /\n 2. ①通信引脚\n通信引脚在框图中有三根:\n(1)SDA——数"
      },
      {
        "url": "/sdoc/peripheral/fsmc/sram/126b0924b2d20263b97733d0.html",
        "relativePath": "/sdoc/20-基本外设篇/25-FSMC/05-外部SRAM/LV015-外部SRAM读写实例.html",
        "frontmatter": {
          "title": "LV015-外部SRAM读写实例",
          "date": "2025-09-24 20:06:58",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/fsmc/sram/126b0924b2d20263b97733d0",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "3b97733d0c5f43148008ceafa2203f32",
            "useduuid": "3b97733d0"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV015-外部SRAM读写实例",
        "date": "2025-09-24 20:06:58",
        "excerpt": "",
        "capture": "一、硬件原理图\n我使用的是正点原子战舰V3的板子,硬件连接如下图:\n&lt;img src=\"./LV015-外部SRAM读写实例/img/image-20230503175021794.png\" alt=\"image-20230503175021794\" style=\"zoom:50%;\" /\n 二、STM32CubeMX配置\n这里只关心FSMC的配置,其他的可以看前边的笔记。\n 1. FSMC配置\n 1.1 模式选择\n&lt;img src=\"./LV015-外部SRAM读写实例/img/image-20230515064458738.png\" alt=\"image-20230515064"
      },
      {
        "url": "/sdoc/peripheral/fsmc/fsmc-basic/126b0924b19533081adda526.html",
        "relativePath": "/sdoc/20-基本外设篇/25-FSMC/01-FSMC基础/LV010-相关HAL库函数.html",
        "frontmatter": {
          "title": "LV010-相关HAL库函数",
          "date": "2025-09-24 20:03:41",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/fsmc/fsmc-basic/126b0924b19533081adda526",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "81adda5266e04132bfcad67ecceec69d",
            "useduuid": "81adda526"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV010-相关HAL库函数",
        "date": "2025-09-24 20:03:41",
        "excerpt": "",
        "capture": "一、库中的寄存器\n在 MDK 的寄存器定义里面,并没有定义 FSMC_BCRx、 FSMC_BTRx、 FSMC_BWTRx 等这个单独的寄存器,而是将他们进行了一些组合。FSMC_BCRx 和 FSMC_BTRx,组合成 BTCR[8]寄存器组,他们的对应关系如下:  \n```c\nBTCR[0]---\nBTCR[2]---&gt;FSMC_BCR2, BTCR[3]---&gt;FSMC_BTR2\nBTCR[4]---&gt;FSMC_BCR3, BTCR[5]---&gt;FSMC_BTR3\nBTCR[6]---&gt;FSMC_BCR4, BTCR[7]---&gt;FSMC_BTR4\n"
      },
      {
        "url": "/sdoc/peripheral/fsmc/fsmc-basic/126b092499b000721416c9a0.html",
        "relativePath": "/sdoc/20-基本外设篇/25-FSMC/01-FSMC基础/LV005-存储器映射与控制器.html",
        "frontmatter": {
          "title": "LV005-存储器映射与控制器",
          "date": "2025-09-24 19:42:24",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/fsmc/fsmc-basic/126b092499b000721416c9a0",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "21416c9a03d8478188e3897a2c59aa5e",
            "useduuid": "21416c9a0"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV005-存储器映射与控制器",
        "date": "2025-09-24 19:42:24",
        "excerpt": "",
        "capture": "一、存储器映射?\n 1. 直接访问地址?\nFSMC连接好外部的存储器并初始化后,就可以直接通过访问地址来读写数据。FSMC访问存储器的方式与I2C EEPROM、SPI FLASH的不一样,后两种方式都需要控制I2C或SPI总线给存储器发送地址,然后获取数据;在程序里,这个地址和数据都需要分开使用不同的变量存储,并且访问时还需要使用代码控制发送读写命令。而使用FSMC外接存储器时,其存储单元是映射到STM32的内部寻址空间的;在程序里,定义一个指向这些地址的指针,然后就可以通过指针直接修改该存储单元的内容,FSMC外设会自动完成数据访问过程,读写命令之类的操作不需要程序控制。\n 2. FSMC"
      },
      {
        "url": "/sdoc/peripheral/fsmc/fsmc-basic/126b092492553b23e8704ba7.html",
        "relativePath": "/sdoc/20-基本外设篇/25-FSMC/01-FSMC基础/LV001-FSMC简介.html",
        "frontmatter": {
          "title": "LV001-FSMC简介",
          "date": "2025-09-24 19:23:41",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/fsmc/fsmc-basic/126b092492553b23e8704ba7",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "3e8704ba79214a3cbb9ab231d637b62e",
            "useduuid": "3e8704ba7"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV001-FSMC简介",
        "date": "2025-09-24 19:23:41",
        "excerpt": "",
        "capture": "这一部分我们可以参考 STM32中文参考手册的 19 灵活的静态存储器控制器(FSMC) 一节。\n 一、FSMC简介\n 1. 什么是FSMC\nFSMC,Flexible static memory controller,即灵活的静态存储控制器,能够与同步或异步存储器和 16 位 PC 存储器卡连接,STM32F1 的 FSMC 接口支持包括 SRAM、 NAND FLASH、 NOR FLASH 和 PSRAM 等存储器,但是不能驱动如SDRAM这种动态的存储器。  而在STM32F429系列的控制器中,它具有FMC外设,支持控制SDRAM存储器。\nSTM32F103ZET6的内部有64KB的"
      },
      {
        "url": "/sdoc/peripheral/fsmc/sram/126b09248e5b007fcadf7acc.html",
        "relativePath": "/sdoc/20-基本外设篇/25-FSMC/05-外部SRAM/LV001-概述.html",
        "frontmatter": {
          "title": "LV001-概述",
          "date": "2025-09-24 19:13:23",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/fsmc/sram/126b09248e5b007fcadf7acc",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "fcadf7accc90458fa4cab2cebf963be3",
            "useduuid": "fcadf7acc"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV001-概述",
        "date": "2025-09-24 19:13:23",
        "excerpt": "",
        "capture": "一、什么是SRAM\n这个参考:10-基础篇/01-概述/LV010-常见存储器.md\n 二、为什么要扩展SRAM?\nSTM32控制器芯片内部有一定大小的SRAM及FLASH作为内存和程序存储空间,程序下载的时候是存放在内部的FLASH中的,在程序运行过程中,会有一些变量或者其他的东西存放在SRAM中运行,这就跟我们PC电脑上的内存一样。当程序较大,内存和程序空间不足时,就需要在STM32芯片的外部扩展存储器了。STM32F103ZE系列芯片可以扩展外部SRAM用作内存。\n给STM32芯片扩展内存与给PC扩展内存的原理是一样的,只是PC上一般以内存条的形式扩展,而且内存条实质是由多个内存颗粒(即"
      },
      {
        "url": "/sdoc/peripheral/fsmc/sram/126b09248db61d861c837fd7.html",
        "relativePath": "/sdoc/20-基本外设篇/25-FSMC/05-外部SRAM/LV005-IS62WV51216简介.html",
        "frontmatter": {
          "title": "LV005-IS62WV51216简介",
          "date": "2025-09-24 19:11:58",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/fsmc/sram/126b09248db61d861c837fd7",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "61c837fd7bf24e47b455ebbf97c03db7",
            "useduuid": "61c837fd7"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV005-IS62WV51216简介",
        "date": "2025-09-24 19:11:58",
        "excerpt": "",
        "capture": "一、简介\n IS62WV51216是ISSI(Integrated Silicon Solution, Inc)公司生产的一颗16位宽512K(512\\*16,即1M字节)容量的CMOS静态内存(SRAM)芯片。开发板上使用的完整的型号是 IS62WV51216BLL,它有以下特点:\n(1)高速。具有45ns/55ns访问速度。\n(2)低功耗。操作时:36mW;待机时:12uW。\n(3)兼容TTL电平。\n(4)全静态操作。不需要刷新和时钟电路。 \n(5)三态输出。\n(6)字节控制功能。支持高/低字节控制。\n 二、引脚说明\n&lt;img src=\"./LV005-IS62WV51216简介/i"
      },
      {
        "url": "/sdoc/peripheral/fsmc/sram/126b09248ce51200a79d393f.html",
        "relativePath": "/sdoc/20-基本外设篇/25-FSMC/05-外部SRAM/LV002-XM8A51216简介.html",
        "frontmatter": {
          "title": "LV002-XM8A51216简介",
          "date": "2025-09-24 19:09:49",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/fsmc/sram/126b09248ce51200a79d393f",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "0a79d393fee944b89889bdacfda6ea95",
            "useduuid": "0a79d393f"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV002-XM8A51216简介",
        "date": "2025-09-24 19:09:49",
        "excerpt": "",
        "capture": "一、简介\nXM8A51216 是深圳星忆存储科技有限公司(星忆存储 )生产的一颗 16 位宽 512K(512*16,即 1M 字节)容量的 CMOS 静态内存芯片。我们可以在这里找到它的芯片手册:。该芯片具有如下几个特点 :\n(1)高速。 具有最高访问速度 10/12ns。\n(2)低功耗。\n(3)TTL 电平兼容。\n(4)全静态操作。不需要刷新和时钟电路。\n(5)三态输出。\n(6)字节控制功能。支持高/低字节控制。  \n 二、功能框图\n功能框图我们可以看 XM8A51216V33(8M).pdf (xingmem.com).pdf) 的 Logic Block Diagram:\n&lt;im"
      },
      {
        "url": "/sdoc/dev-tool/keil/126b0913865605b5493dc70e.html",
        "relativePath": "/sdoc/01-开发工具/01-keil/LV017-Listing目录文件.html",
        "frontmatter": {
          "title": "LV017-Listing目录文件",
          "date": "2025-09-23 07:51:58",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/dev-tool/keil/126b0913865605b5493dc70e",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "5493dc70ee6849e0b32a91f39d8e2488",
            "useduuid": "5493dc70e"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV017-Listing目录文件",
        "date": "2025-09-23 07:51:58",
        "excerpt": "",
        "capture": "本篇笔记主要是参考的野火的文档。使用的工程呢可以去这里下载:ebf_stm32f103_badao_std_code: 野火STM32F103 霸道开发板 标准库教程配套代码 (gitee.com)\n\n在Listing目录下包含了.map及.lst文件,它们都是文本格式的,可使用Windows的记事本软件打开。其中lst文件仅包含了一些汇编符号的链接信息,这些文件中重点是map文件。\n 一、Listing目录位置选择\n这里存放的都是链接器链接过程中用到的或者生成的文件,我们也是可以自行配置目录位置的:\n&lt;img src=\"./LV017-Listing目录文件/img/image-202"
      },
      {
        "url": "/sdoc/dev-tool/keil/126b0913857d3670d6f0eef1.html",
        "relativePath": "/sdoc/01-开发工具/01-keil/LV015-MDK工程文件简介.html",
        "frontmatter": {
          "title": "LV015-MDK工程文件简介",
          "date": "2025-09-23 07:49:41",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/dev-tool/keil/126b0913857d3670d6f0eef1",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "0d6f0eef153042fc862dc752cb0e3c2d",
            "useduuid": "0d6f0eef1"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV015-MDK工程文件简介",
        "date": "2025-09-23 07:49:41",
        "excerpt": "",
        "capture": "本篇笔记主要是参考的野火的文档。使用的工程呢可以去这里下载:ebf_stm32f103_badao_std_code: 野火STM32F103 霸道开发板 标准库教程配套代码 (gitee.com)\n\n 一、MDK工程文件类型\n 1. Project工程文件\n&lt;table&gt;\n    &lt;tbody&gt;\n        &lt;tr&gt;&lt;td align=\"left\"&gt;后缀&lt;/td&gt;&lt;td align=\"left\"&gt;说明&lt;/td&gt;&lt;/tr&gt;\n        &lt;tr&gt;&lt;td align=\"left"
      },
      {
        "url": "/sdoc/dev-tool/keil/126b091384f9220a0ff9cf1d.html",
        "relativePath": "/sdoc/01-开发工具/01-keil/LV016-Output目录文件.html",
        "frontmatter": {
          "title": "LV016-Output目录文件",
          "date": "2025-09-23 07:48:09",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/dev-tool/keil/126b091384f9220a0ff9cf1d",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "a0ff9cf1dff34a1790997424e34bac30",
            "useduuid": "a0ff9cf1d"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV016-Output目录文件",
        "date": "2025-09-23 07:48:09",
        "excerpt": "",
        "capture": "本篇笔记主要是参考的野火的文档。使用的工程呢可以去这里下载:ebf_stm32f103_badao_std_code: 野火STM32F103 霸道开发板 标准库教程配套代码 (gitee.com)\n\n 一、Output目录位置选择\nOutput目录是存放输出文件以及一些中间文件的目录,这个目录是可以配置的:\n&lt;img src=\"./LV016-Output目录文件/img/image-20230529200416215-1758358981825-2.png\" alt=\"image-20230529200416215\" style=\"zoom: 67%;\" /&gt;\n点击 MDK 中"
      },
      {
        "url": "/sdoc/communication/serial-port/126b0904421d06db7b197798.html",
        "relativePath": "/sdoc/60-通信专题/10-串口/LV001-串口通信简介.html",
        "frontmatter": {
          "title": "LV001-串口通信简介",
          "date": "2025-09-22 07:46:53",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/communication/serial-port/126b0904421d06db7b197798",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "b7b197798fd74f3fb97abd23e12eb7bc",
            "useduuid": "b7b197798"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV001-串口通信简介",
        "date": "2025-09-22 07:46:53",
        "excerpt": "",
        "capture": "一、串口通信简介\n 1. 串口简介\n串口通讯(Serial Communication)是一种设备间非常常用的串行通讯方式,因为它简单便捷,因此大部分电子设备都支持该通讯方式。串口全称叫做串行接口,通常也叫做 COM 接口,串行接口指的是数据一个一个的顺序传输,通信线路简单。使用两条线即可实现双向通信,一条用于发送,一条用于接收。串口通信距离远,但是速度相对会低,串口是一种很常用的工业接口。我们常用串行外设接口有UART和USART两种:\n- UART:UART 全称是 Universal Asynchronous Receiver/Trasmitter,也就是异步串行收发器。\n- USART"
      },
      {
        "url": "/sdoc/communication/i2c/126b09043fca31869028172d.html",
        "relativePath": "/sdoc/60-通信专题/01-I2C协议/LV020-AT24C02实例分析.html",
        "frontmatter": {
          "title": "LV020-AT24C02实例分析",
          "date": "2025-09-22 07:40:58",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/communication/i2c/126b09043fca31869028172d",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "69028172daa144dcbab34851329c3348",
            "useduuid": "69028172d"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV020-AT24C02实例分析",
        "date": "2025-09-22 07:40:58",
        "excerpt": "",
        "capture": "AT24C02 是一个 256 (2K/8)个字节的 EEPROM ,它使用的接口就是 I2C ,在它的芯片手册中,给出了读写时序的时序图,我们就以此器件为例分析一下 I2C 的读写时序。\n 一、单字节写时序\n&lt;img src=\"./LV020-AT24C02实例分析/img/image-20220903160151362.png\" alt=\"image-20220903160151362\" style=\"zoom:50%;\" /\n(1)开始信号。\n(2)发送  I2C  设备地址,每个  I2C  器件都有一个设备地址,通过发送具体的设备地址来决定访问哪个  I2C  器件。这是一个 "
      },
      {
        "url": "/sdoc/communication/i2c/126b09043f2d250b963bfb0d.html",
        "relativePath": "/sdoc/60-通信专题/01-I2C协议/LV001-I2C简介.html",
        "frontmatter": {
          "title": "LV001-I2C简介",
          "date": "2025-09-22 07:39:01",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/communication/i2c/126b09043f2d250b963bfb0d",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "b963bfb0deb74fcaa8f060b7b084d3d8",
            "useduuid": "b963bfb0d"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV001-I2C简介",
        "date": "2025-09-22 07:39:01",
        "excerpt": "",
        "capture": "一、I2C简介\n 1. I2C介绍\nI2C 就是 I2C ( Inter-Integrated Circuit )总线,是一种多主从架构串行通信总线。在1980年由 PHILIPS  (飞利浦)公司开发的两线式串行、同步、半双工、多主多从的通信总线,用于连接微控制器及其外围设备。它可以让主板、嵌入式系统或手机连接低速周边设备, 如今在嵌入式领域是非常常见。\n它是由数据线  SDA  和时钟  SCL  构成的串行总线,可发送和接收数据。在  CPU  与被控  IC  之间、  IC  与  IC  之间进行双向传送数据, 标准 I2C 总线传输速率可到 100kbps ,高速  I2C  总"
      },
      {
        "url": "/sdoc/communication/126b09043e1c12685fda3fb8.html",
        "relativePath": "/sdoc/60-通信专题/LV001-通信概述.html",
        "frontmatter": {
          "title": "LV001-通信概述",
          "date": "2025-09-22 07:36:28",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/communication/126b09043e1c12685fda3fb8",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "85fda3fb8df54e90807dd03d5831b5bf",
            "useduuid": "85fda3fb8"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV001-通信概述",
        "date": "2025-09-22 07:36:28",
        "excerpt": "",
        "capture": "一、通信的两种方式\n处理器与外部设备通信,按数据传送的方式,通讯可分为串行通讯与并行通讯,但是一般我们看到的大多数都是串行通信。\n 1.串行通信\n串行通讯是指设备之间通过少量数据信号线(一般是 8 根以下), 地线以及控制信号线,按数据位形式一位一位地传输数据的通讯方式。\n- 传输原理:数据按位顺序传输\n- 优点:占用处理器引脚资源少\n- 缺点:传输速度相对较慢\n&lt;img src=\"./LV001-通信概述/img/image-20220918111415861.png\" alt=\"image-20220918111415861\" style=\"zoom:33%;\" /\n 2.并行通信\n"
      },
      {
        "url": "/sdoc/peripheral/watchdog/126b09043c29000296442c6e.html",
        "relativePath": "/sdoc/20-基本外设篇/20-看门狗/LV010-看门狗使用实例.html",
        "frontmatter": {
          "title": "LV010-看门狗使用实例",
          "date": "2025-09-22 07:31:29",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/watchdog/126b09043c29000296442c6e",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "296442c6e9ba4600b39cd12075ea87af",
            "useduuid": "296442c6e"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV010-看门狗使用实例",
        "date": "2025-09-22 07:31:29",
        "excerpt": "",
        "capture": "一、独立看门狗\n 1. 硬件设计\n独立看门狗属于 STM32F1 的内部资源,只需要软件设置好即可正常工作。我们通过LED灯来指示 STM32F1 的复位情况来看指示独立看门狗的喂狗情况。\n 2. STM32CubeMX配置  \n 2.1 IWDG配置\n&lt;img src=\"./LV010-看门狗使用实例/img/image-20230513193914903.png\" alt=\"image-20230513193914903\" style=\"zoom:80%;\" /\n独立看门狗的配置时间比较简单:\n①、选择IWDG;\n②、勾选Activated,表示启用独立看门狗;\n③、看门狗的时钟分频"
      },
      {
        "url": "/sdoc/peripheral/watchdog/126b09043ae916195cb39541.html",
        "relativePath": "/sdoc/20-基本外设篇/20-看门狗/LV001-看门狗简介.html",
        "frontmatter": {
          "title": "LV001-看门狗简介",
          "date": "2025-09-22 07:28:09",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/watchdog/126b09043ae916195cb39541",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "95cb3954118d49beb6d6912a9e3cb522",
            "useduuid": "95cb39541"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV001-看门狗简介",
        "date": "2025-09-22 07:28:09",
        "excerpt": "",
        "capture": "一、看门狗简介\n 1. 简介\n在由单片机构成的微型计算机系统中,由于单片机的工作常常会受到来自外界电磁场的干扰,造成程序的跑飞,而陷入死循环,程序的正常运行被打断,由单片机控制的系统无法继续工作,会造成整个系统的陷入停滞状态,发生不可预料的后果,所以出于对单片机运行状态进行实时监测的考虑,便产生了一种专门用于监测单片机程序运行状态的模块或者芯片,俗称“看门狗”(watchdog) 。\n看门狗主要用于解决什么问题呢?在启动正常运行的时候,系统不能复位。在系统跑飞(程序异常执行)的情况,系统复位,程序重新执行。看门狗的本质也是一个定时器,在启动后,需要在一定时间内再给它一个信号,俗称“喂狗”,如果"
      },
      {
        "url": "/sdoc/peripheral/timer/126b08f71bb31f61f9e3c819.html",
        "relativePath": "/sdoc/20-基本外设篇/15-定时器/LV105-自定义延时函数.html",
        "frontmatter": {
          "title": "LV105-自定义延时函数",
          "date": "2025-09-21 21:28:51",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/timer/126b08f71bb31f61f9e3c819",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "1f9e3c81978544cfa5b36e225514bb0d",
            "useduuid": "1f9e3c819"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV105-自定义延时函数",
        "date": "2025-09-21 21:28:51",
        "excerpt": "",
        "capture": "在20-基本外设篇/15-定时器/LV105-自定义延时函数.md中我们分析了HAL库中的HAL_Delay()函数,它是借助SysTick定时器的中断来实现的,就意味着不能在其他中断中使用这个延时函数,那么有没有其他办法实现延时?\n 一、时钟摘取法  \n我们来看一下正点原子SYSTEM目录下的delay.c中的delay_us函数。\n 1. delay_init()\n在main函数中是这样调用的:\n```c\ndelay_init(72);\n```\n这个函数的定义(删除了OS相关的内容)如下:\n```c\n/**\n * @brief     初始化延迟函数\n * @param     syscl"
      },
      {
        "url": "/sdoc/peripheral/timer/126b08f7176d34627620ad1b.html",
        "relativePath": "/sdoc/20-基本外设篇/15-定时器/LV100-SysTick定时器简介.html",
        "frontmatter": {
          "title": "LV100-SysTick定时器简介",
          "date": "2025-09-21 21:17:57",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/timer/126b08f7176d34627620ad1b",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "27620ad1b6704f3ab64b6bc4d14b88f4",
            "useduuid": "27620ad1b"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV100-SysTick定时器简介",
        "date": "2025-09-21 21:17:57",
        "excerpt": "",
        "capture": "这一部分我们可以查看Cortex-M3 权威指南的 第8章NVIC与中断控制 中的 SysTick定时器  小节。\n 一、SysTick定时器简介\nSysTick定时器(又名系统滴答定时器)是存在于Cortex-M3的一个定时器,只要是ARM Cotex-M系列内核的MCU都包含这个定时器。使用内核的SysTick定时器来实现延时,可以不占用系统定时器,节约资源。由于SysTick是在CPU核内部实现的,跟MCU外设无关, 因此它的代码可以在不同厂家之间移植。  \nSysTick定时器被捆绑在NVIC中,用于产生SYSTICK异常(异常号: 15)。在以前,大多操作系统需要一个硬件定时器来产生"
      },
      {
        "url": "/sdoc/peripheral/timer/126b08f6ae2512a51a9eec42.html",
        "relativePath": "/sdoc/20-基本外设篇/15-定时器/LV090-高级定时器PWM输入.html",
        "frontmatter": {
          "title": "LV090-高级定时器PWM输入",
          "date": "2025-09-21 18:48:05",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/timer/126b08f6ae2512a51a9eec42",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "51a9eec423e4412c99aa8247ccd2092d",
            "useduuid": "51a9eec42"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV090-高级定时器PWM输入",
        "date": "2025-09-21 18:48:05",
        "excerpt": "",
        "capture": "本小节我们来学习使用高级定时器 PWM 输入模式, 此模式是输入捕获模式的一个特例。PWM 输入模式经常被应用于测量 PWM 脉宽和频率。 PWM 输入模式在《STM32F10xxx 参考手册_V10(中文版) .pdf》 手册 216 页有详细的文字描述。\n 一、工作原理\n&lt;img src=\"./LV090-高级定时器PWM输入/img/image-20240114135116438.png\" alt=\"image-20240114135116438\" style=\"zoom:50%;\" /\n第一,确定定时器时钟源。本实验中我们使用内部时钟(CK_INT), F1 系列高级定时器挂载在"
      },
      {
        "url": "/sdoc/peripheral/timer/126b08f6ad8f2e0487d6c438.html",
        "relativePath": "/sdoc/20-基本外设篇/15-定时器/LV085-高级定时器互补输出.html",
        "frontmatter": {
          "title": "LV085-高级定时器互补输出",
          "date": "2025-09-21 18:46:55",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/timer/126b08f6ad8f2e0487d6c438",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "487d6c4384224a459898d149b83609e0",
            "useduuid": "487d6c438"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV085-高级定时器互补输出",
        "date": "2025-09-21 18:46:55",
        "excerpt": "",
        "capture": "一、基本概念\n什么是互补输出?还带死区控制?  我们来简单了解一下。关于互补输出和死区插入的更多内容可以看《STM32F10xxx 参考手册_V10(中文版) .pdf》手册的 13.3.11 小节 。\n 1. 互补输出\n&lt;img src=\"./LV085-高级定时器互补输出/img/image-20240114131925473.png\" alt=\"image-20240114131925473\" style=\"zoom:50%;\" /\n&lt;p align=\"center\"&gt;\n    图一-1 互补输出\n&lt;/p&gt;\n上图中, CH1 输出黄色的 PWM,它的互补通道"
      },
      {
        "url": "/sdoc/peripheral/timer/126b08f6aca0253099c9ba29.html",
        "relativePath": "/sdoc/20-基本外设篇/15-定时器/LV080-高级定时器输出比较模式.html",
        "frontmatter": {
          "title": "LV080-高级定时器输出比较模式",
          "date": "2025-09-21 18:44:16",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/timer/126b08f6aca0253099c9ba29",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "099c9ba29781487ab77ef3977ecd7122",
            "useduuid": "099c9ba29"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV080-高级定时器输出比较模式",
        "date": "2025-09-21 18:44:16",
        "excerpt": "",
        "capture": "一、输出比较模式输出PWM\n我们来学习使用高级定时器输出比较模式下翻转功能,通过定时器 4 个通道分别输出 4 个 50%占空比、不同相位的 PWM。\n输出比较模式下翻转功能作用是:当计数器的值等于捕获/比较寄存器影子寄存器的值时,OC1REF 发生翻转,进而控制通道输出(OCx)翻转。通过翻转功能实现输出 PWM 的具体原理如下: PWM 频率由自动重载寄存器(TIMx_ARR)的值决定,在这个过程中,只要自动重载寄存器的值不变,那么 PWM 占空比就固定为 50%。我们可以通过捕获/比较寄存器(TIMx_CCRx)的值改变 PWM 的相位。生成 PWM 的原理如图 :\n&lt;img sr"
      },
      {
        "url": "/sdoc/peripheral/timer/126b08f6ac4f2bb02b42403e.html",
        "relativePath": "/sdoc/20-基本外设篇/15-定时器/LV075-高级定时器PWM输出.html",
        "frontmatter": {
          "title": "LV075-高级定时器PWM输出",
          "date": "2025-09-21 18:43:35",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/timer/126b08f6ac4f2bb02b42403e",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "02b42403e6334b1e88b3aefe535488bf",
            "useduuid": "02b42403e"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV075-高级定时器PWM输出",
        "date": "2025-09-21 18:43:35",
        "excerpt": "",
        "capture": "一、基本原理\n要实现定时器输出指定个数 PWM,只需要掌握下面几点内容:\n- 第一,定时器是如何输出 PWM 的,这部分的知识和前面是一样的。但是需要注意的是:我们需要把 MOE 位置 1,这样高级定时器的通道才能输出。\n- 第二,要清楚重复计数器特性,设置重复计数器寄存器 RCR 的值为 N,那么更新事件将在定时器发生 N+1 次上溢或下溢时发生。换句话来说就是,想要指定输出 N 个 PWM,只需要把N-1 写入 RCR 寄存器。因为在边沿对齐模式下,定时器溢出周期对应着 PWM 周期,我们只要在更新事件发生时,停止输出 PWM 就行。\n- 第三,为了保证定时器输出指定个数的 PWM 后,定"
      },
      {
        "url": "/sdoc/peripheral/timer/126b08f6abf821065c6674f2.html",
        "relativePath": "/sdoc/20-基本外设篇/15-定时器/LV070-高级定时器简介.html",
        "frontmatter": {
          "title": "LV070-高级定时器简介",
          "date": "2025-09-21 18:42:48",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/timer/126b08f6abf821065c6674f2",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "65c6674f24194a5c905c5931e3b1bb25",
            "useduuid": "65c6674f2"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV070-高级定时器简介",
        "date": "2025-09-21 18:42:48",
        "excerpt": "",
        "capture": "从这一节开始主要来学习高级定时器, STM32F103 有 2 个高级定时器(TIM1 和 TIM8)。将会通过四个实验来学习高级定时器的各个功能,分别是高级定时器输出指定个数 PWM 实验、高级定时器输出比较模式实验、高级定时器互补输出带死区控制实验和高级定时器 PWM 输入模式实验。  \n 一、高级定时器框图\n高级定时器的框图和通用定时器框图很类似,只是添加了其它的一些功能,如:重复计数器、带死区控制的互补输出通道、断路输入等。这些功能在高级定时器框图的位置如下:  \n&lt;img src=\"./LV070-高级定时器简介/img/image-20240114124949607.png\""
      },
      {
        "url": "/sdoc/peripheral/timer/126b08f6ab873bc74e57e381.html",
        "relativePath": "/sdoc/20-基本外设篇/15-定时器/LV050-通用定时器脉冲计数.html",
        "frontmatter": {
          "title": "LV050-通用定时器脉冲计数",
          "date": "2025-09-21 18:41:35",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/timer/126b08f6ab873bc74e57e381",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "74e57e3815ac43a9b2ad64b853530fde",
            "useduuid": "74e57e381"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV050-通用定时器脉冲计数",
        "date": "2025-09-21 18:41:35",
        "excerpt": "",
        "capture": "前面我们介绍了通用定时器的四类时钟源,这一节我们来学习使用通用定时器的外部时钟模式 1 这类时钟源。我们通过脉冲计数实验来学习。\n 一、需求说明\n前面的三个通用定时器实验的时钟源都是来自内部时钟 (CK_INT),在脉冲计数的使用中我们将使用外部时钟模式 1:外部输入引脚 (TIx)作为定时器的时钟源。关于这个外部输入引脚(TIx),我们使用 WK_UP 按键按下产生的高电平脉冲作为定时器的计数器时钟,每按下一次按键产生一次高电平脉冲,计数器加一。  \n 二、定时器资源说明\n&lt;img src=\"./LV050-通用定时器脉冲计数/img/image-20240114104935667.p"
      },
      {
        "url": "/sdoc/peripheral/timer/126b08f6ab6404f5fdfb5648.html",
        "relativePath": "/sdoc/20-基本外设篇/15-定时器/LV045-通用定时器输入捕获.html",
        "frontmatter": {
          "title": "LV045-通用定时器输入捕获",
          "date": "2025-09-21 18:41:00",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/timer/126b08f6ab6404f5fdfb5648",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "5fdfb5648d1542adb31bc692aaebfac4",
            "useduuid": "5fdfb5648"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV045-通用定时器输入捕获",
        "date": "2025-09-21 18:41:00",
        "excerpt": "",
        "capture": "一、脉宽测量基本原理\n输入捕获模式可以用来测量脉冲宽度或者测量频率。我们以测量脉宽为例,用一个简图来说明输入捕获脉宽测量原理:\n&lt;img src=\"./LV045-通用定时器输入捕获/img/image-20240114103053113.png\" alt=\"image-20240114103053113\" style=\"zoom: 33%;\" /\nt1 到 t2 的时间段,就是我们需要测量的高电平时间。测量方法如下:假如定时器工作在递增计数模式,首先设置定时器通道 x 为上升沿捕获,这样在 t1 时刻上升沿到来时,就会发生捕获事件。这里我们还会打开捕获中断,所以捕获事件发生就意味着捕获"
      },
      {
        "url": "/sdoc/peripheral/timer/126b08f6aac20ab7bc66d777.html",
        "relativePath": "/sdoc/20-基本外设篇/15-定时器/LV040-通用定时器PWM输出.html",
        "frontmatter": {
          "title": "LV040-通用定时器PWM输出",
          "date": "2025-09-21 18:39:38",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/timer/126b08f6aac20ab7bc66d777",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "7bc66d777a344e838bab8b97634f96bc",
            "useduuid": "7bc66d777"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV040-通用定时器PWM输出",
        "date": "2025-09-21 18:39:38",
        "excerpt": "",
        "capture": "一、PWM产生原理\n脉冲宽度调制(PWM),是英文“Pulse Width Modulation”的缩写,简称脉宽调制,是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术。我们可以让定时器产生PWM,在计数器频率固定时, PWM 频率或者周期由自动重载寄存器(TIMx_ARR)的值决定,其占空比由捕获/比较寄存器(TIMx_CCRx)的值决定。 PWM 产生原理示意图如下图所示:  \n&lt;img src=\"./LV040-通用定时器PWM输出/img/image-20240114095044325.png\" alt=\"image-20240114095044325\" styl"
      },
      {
        "url": "/sdoc/peripheral/timer/126b08f6aa9f293ebbce26b2.html",
        "relativePath": "/sdoc/20-基本外设篇/15-定时器/LV035-通用定时器的中断.html",
        "frontmatter": {
          "title": "LV035-通用定时器的中断",
          "date": "2025-09-21 18:39:03",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/timer/126b08f6aa9f293ebbce26b2",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "ebbce26b2eed4f0e8e7db13c33566c30",
            "useduuid": "ebbce26b2"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV035-通用定时器的中断",
        "date": "2025-09-21 18:39:03",
        "excerpt": "",
        "capture": "一、相关寄存器\n我们来学习使用通用定时器中断,学习 TIM2/TIM3/TIM4/TIM5 的几个与定时器中断相关且重要的寄存器。主要以定时器3为例。\n 1. 控制寄存器 1(TIMx_CR1)\nTIM2/TIM3/TIM4/TIM5 的控制寄存器 1 描述如图:\n&lt;img src=\"./LV035-通用定时器的中断/img/image-20240114094348633.png\" alt=\"image-20240114094348633\" style=\"zoom:50%;\" /\n上图中只截出了中断需要用的一些位,其中:  \n位 7(APRE)用于控制自动重载寄存器是否进行缓冲,如果 A"
      },
      {
        "url": "/sdoc/peripheral/timer/126b08f6aa441b536809798e.html",
        "relativePath": "/sdoc/20-基本外设篇/15-定时器/LV030-通用定时器简介.html",
        "frontmatter": {
          "title": "LV030-通用定时器简介",
          "date": "2025-09-21 18:38:12",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/timer/126b08f6aa441b536809798e",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "36809798e68046309b813b9706a23f8a",
            "useduuid": "36809798e"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV030-通用定时器简介",
        "date": "2025-09-21 18:38:12",
        "excerpt": "",
        "capture": "一、STM32的通用定时器\nSTM32F103 的通用定时器有 4 个,如下所示:  \n&lt;img src=\"./LV030-通用定时器简介/img/image-20240114085044691.png\" alt=\"image-20240114085044691\" /\n该表可以参考《STM32数据手册》的2.3.17 Timers and watchdogs小节。由上表知道: 该 STM32 芯片的计数器都是 16 位的。 通用定时器和高级定时器其实也就是在基本定时器的基础上,添加了一些其他功能,如: 输入捕获、 输出比较、输出 PWM 和单脉冲模式等。 而通用定时器数量较多,其特性也有"
      },
      {
        "url": "/sdoc/peripheral/timer/basic/126b08f6a8e32e3427f3a2b2.html",
        "relativePath": "/sdoc/20-基本外设篇/15-定时器/LV001-基本定时器简介.html",
        "frontmatter": {
          "title": "LV001-基本定时器简介",
          "date": "2025-09-21 18:34:59",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/timer/basic/126b08f6a8e32e3427f3a2b2",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "427f3a2b26fc476299e1f6f52f2c33ad",
            "useduuid": "427f3a2b2"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV001-基本定时器简介",
        "date": "2025-09-21 18:34:59",
        "excerpt": "",
        "capture": "一、基本定时器简介\n 1. STM32的基本定时器\nSTM32F103 有两个基本定时器 TIM6 和 TIM7,它们的功能完全相同,资源是完全独立的,可以同时使用。其主要特性如下: 16 位自动重载递增计数器, 16 位可编程预分频器,预分频系数 1\\~65536,用于对计数器时钟频率进行分频,还可以触发 DAC 的同步电路,以及生成中断/DMA 请求。  \n 2. 基本定时器框图  \n&lt;img src=\"./LV001-基本定时器简介/img/image-20240114083136570.png\" alt=\"image-20240114083136570\" style=\"zoom:"
      },
      {
        "url": "/sdoc/peripheral/uart/126b08f61664097f4a0617fc.html",
        "relativePath": "/sdoc/20-基本外设篇/10-UART/LV020-串口收发实例.html",
        "frontmatter": {
          "title": "LV020-串口收发实例",
          "date": "2025-09-21 14:59:56",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/uart/126b08f61664097f4a0617fc",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "f4a0617fc94447a8962e262d9db98842",
            "useduuid": "f4a0617fc"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV020-串口收发实例",
        "date": "2025-09-21 14:59:56",
        "excerpt": "",
        "capture": "一、串口打印实现\n说明,这里使用STM32CubeM进行配置和导出工程。\n 1. 硬件设计\n我使用的是正点原子的战舰V3,串口部分电路如下,串口 1 与 USB 串口并没有在 PCB 上连接在一起,需要通过跳线帽来连接一下。这里我们把 P4 的 RXD 和 TXD 用跳线帽与 PA9 和 PA10 连接起来。  \n&lt;img src=\"./LV020-串口收发实例/img/image-20230502122716375.png\" alt=\"image-20230502122716375\" style=\"zoom: 67%;\" /\n 2. STM32CubeMX配置\n注意这里的时钟都没配置,"
      },
      {
        "url": "/sdoc/peripheral/uart/126b08f6146d2d238b102738.html",
        "relativePath": "/sdoc/20-基本外设篇/10-UART/LV010-STM32的串口.html",
        "frontmatter": {
          "title": "LV010-STM32的串口",
          "date": "2025-09-21 14:54:53",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/uart/126b08f6146d2d238b102738",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "38b1027380d146cb959e571687931c97",
            "useduuid": "38b102738"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV010-STM32的串口",
        "date": "2025-09-21 14:54:53",
        "excerpt": "",
        "capture": "一、STM32的串口\n 1. 概述\n在嵌入式中,很多MCU和外设模块都集成有UART外设。 STM32F103有3个通用同步异步收发器( Universal synchronous asynchronous receiver transmitter, USART), 2个通用异步收发器( Universalasynchronous receiver transmitter, UART) 。 USART和UART的主要区别在于, USART支持同步通信, 该模式有一根时钟线提供时钟。这里需要说明一下,由于在STM中文或者是英文参考手册,相关的介绍章节主要是关于USART,但是他们都是通用的,所以"
      },
      {
        "url": "/sdoc/peripheral/uart/126b08f60edb3b6ac7962cbf.html",
        "relativePath": "/sdoc/20-基本外设篇/10-UART/LV001-串口通信简介.html",
        "frontmatter": {
          "title": "LV001-串口通信简介",
          "date": "2025-09-21 14:40:27",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/uart/126b08f60edb3b6ac7962cbf",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "ac7962cbf7d245659539f5436bb59e37",
            "useduuid": "ac7962cbf"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV001-串口通信简介",
        "date": "2025-09-21 14:40:27",
        "excerpt": "",
        "capture": "一、数据通信\n在单片机的应用中,数据通信是必不可少的一部分,比如:单片机和上位机、单片机和外围器件之间,它们都有数据通信的需求。由于设备之间的电气特性、传输速率、可靠性要求各不相同,于是就有了各种通信类型、通信协议,我们最常的有: USART、 IIC、 SPI、 CAN、 USB等。\n 1. 数据通信方式\n按数据通信方式分类,可分为串行通信和并行通信两种。串行和并行的对比如下图所示:  \n串行通信的基本特征是数据逐位顺序依次传输,优点是传输线少、 布线成本低、 灵活度高等优点,一般用于近距离人机交互, 特殊处理后也可以用于远距离, 缺点就是传输速率低。而并行通信是数据各位可以通过多条线同时传"
      },
      {
        "url": "/sdoc/basic/stm32clock/126b08f5dcd1392ef8558043.html",
        "relativePath": "/sdoc/10-基础篇/40-STM32时钟/LV010-STM32F1的SYSCLK.html",
        "frontmatter": {
          "title": "LV010-STM32F1的SYSCLK",
          "date": "2025-09-21 13:12:17",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/basic/stm32clock/126b08f5dcd1392ef8558043",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "ef8558043211434e9696dd7586e40951",
            "useduuid": "ef8558043"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV010-STM32F1的SYSCLK",
        "date": "2025-09-21 13:12:17",
        "excerpt": "<p>这一部分我们来详细了解一下系统时钟SYSCLK。</p>\n",
        "capture": "这一部分我们来详细了解一下系统时钟SYSCLK。\n 一、PLL 作为系统时钟源  \n在 STM32 中, 锁相环的输出也可以作为芯片系统的时钟源。 根据STM32F1的时钟结构,使用锁相环时只需要进行三个部分的配置。为了方便查看,这里直接截取STM32CubeMX中时钟树中使用 PLL 作为系统时钟源的配置部分,  \n- PLLXTPRE: HSE 分频器作为 PLL 输入 (HSE divider for PLL entry)  \n即图 11.1.2.1 在标注为①的地方, 它专门用于 HSE, ST 设计它有两种方式,并把它的控制功能放在 RCC_CFGR 寄存器中, 我们引用如图:\n从 "
      },
      {
        "url": "/sdoc/basic/stm32clock/126b08f5d89727a6ee395582.html",
        "relativePath": "/sdoc/10-基础篇/40-STM32时钟/LV001-STM32F1时钟系统.html",
        "frontmatter": {
          "title": "LV001-STM32F1时钟系统",
          "date": "2025-09-21 13:01:35",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/basic/stm32clock/126b08f5d89727a6ee395582",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "6ee395582b8f401e806f3f6b8aac7e4a",
            "useduuid": "6ee395582"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV001-STM32F1时钟系统",
        "date": "2025-09-21 13:01:35",
        "excerpt": "",
        "capture": "一、STM32时钟树概述\n 1. 时钟系统\n时钟系统是由振荡器(信号源)、定时唤醒器、分频器等组成的电路。常用的信号源有晶体振荡器和RC振荡器。\n时钟是嵌入式系统的脉搏,处理器内核在时钟驱动下完成指令执行,状态变换等动作,外设部件在时钟的驱动下完成各种工作,比如串口数据的发送、A/D转换、定时器计数等等。因此时钟对于计算机系统是至关重要的,通常时钟系统出现问题也是致命的,比如振荡器不起振、振荡不稳、停振等。\n&lt;img src=\"./LV001-STM32F1时钟系统/img/image-20230502201120397.png\" alt=\"image-20230502201120397"
      },
      {
        "url": "/sdoc/peripheral/gpio/126b08f596281cc89a3bc4c6.html",
        "relativePath": "/sdoc/20-基本外设篇/01-GPIO/LV045-外部中断实例.html",
        "frontmatter": {
          "title": "LV045-外部中断实例",
          "date": "2025-09-21 11:31:28",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/gpio/126b08f596281cc89a3bc4c6",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "89a3bc4c6a9b4249afce4152ca5d1241",
            "useduuid": "89a3bc4c6"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV045-外部中断实例",
        "date": "2025-09-21 11:31:28",
        "excerpt": "",
        "capture": "一、硬件原理图\n&lt;img src=\"./LV045-外部中断实例/img/image-20230501153706041.png\" alt=\"image-20230501153706041\" style=\"zoom: 67%;\" /\n 二、STM32CubeMX配置\n 1. GPIO引脚配置\n在STM32CubeMX软件中,我们选择好引脚后,GPIO的功能中会自动对应好与EXIT的关系,当然,我们也可以看 STM32中文参考手册的 9.2.5 外部中断/事件线路映像一节。\n(1)PA0 所接按键按下时为高电平,默认时我们设置为下拉,也就是默认时低电平:\n&lt;img src=\"./LV"
      },
      {
        "url": "/sdoc/peripheral/gpio/126b08f58a5c2c09e1d6100f.html",
        "relativePath": "/sdoc/20-基本外设篇/01-GPIO/LV040-外部中断.html",
        "frontmatter": {
          "title": "LV040-外部中断",
          "date": "2025-09-21 11:01:08",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/gpio/126b08f58a5c2c09e1d6100f",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "9e1d6100f7d74737974bd9674a8ba8c0",
            "useduuid": "9e1d6100f"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV040-外部中断",
        "date": "2025-09-21 11:01:08",
        "excerpt": "",
        "capture": "&gt;\n&gt;- 10-基础篇/30-STM32的中断/LV001-STM32中断简介.md\n&gt;- 10-基础篇/01-概述/LV040-CortexM3异常.md\n 一、EXTI\n 1. 简介\nSTM32的中断和中断优先级,知道了所有外设中断都由NVIC管理,比如USART、 ADC、 I2C、 SPI等。 GPIO产生的中断也不例外,但在给NVIC管理之前,还有一个EXTI( External interrupt/event controller,外部中断/事件控制器) 先处理一下 :\n&lt;img src=\"./LV040-外部中断/img/image-20230501150"
      },
      {
        "url": "/sdoc/basic/stm32interrupt/126b08f57241322fa604782d.html",
        "relativePath": "/sdoc/10-基础篇/30-STM32的中断/LV001-STM32中断简介.html",
        "frontmatter": {
          "title": "LV001-STM32中断简介",
          "date": "2025-09-21 10:39:37",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/basic/stm32interrupt/126b08f57241322fa604782d",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "fa604782d9e94117829d0f1a00c0d99d",
            "useduuid": "fa604782d"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV001-STM32中断简介",
        "date": "2025-09-21 10:39:37",
        "excerpt": "",
        "capture": "一、基本概念\n生活中,有这样一个场景,我现在正在看电视剧,然后这个时候突然有人敲门,我该怎么做?正常我们应该是暂停电视剧,然后去开门,处理有人敲门这件事,这件事处理完后,回到电视机前,继续看电视剧,这就是一个中断。\n在处理器中,中断是一个过程,即CPU在正常执行程序的过程中,遇到外部/内部的紧急事件需要处理,暂时中止当前程序的执行,转而去为处理紧急的事件,待处理完毕后再返回被打断的程序处继续往下执行。中断在计算机多任务处理,尤其是即时系统中尤为重要。比如uCOS,FreeRTOS等。\n中断存在的意义就在于中断能提高CPU的效率,同时能对突发事件做出实时处理。实现程序的并行化,实现嵌入式系统进程"
      },
      {
        "url": "/sdoc/peripheral/gpio/126b08e8078f1f2b7ad1d6a6.html",
        "relativePath": "/sdoc/20-基本外设篇/01-GPIO/LV030-按键检测.html",
        "frontmatter": {
          "title": "LV030-按键检测",
          "date": "2025-09-20 22:46:55",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/gpio/126b08e8078f1f2b7ad1d6a6",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "b7ad1d6a65df41fab1ae6bd4b2de28b9",
            "useduuid": "b7ad1d6a6"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV030-按键检测",
        "date": "2025-09-20 22:46:55",
        "excerpt": "",
        "capture": "一、基本步骤\n- (1)使能IO口时钟。\n- (2)初始化IO口模式,包括GPIO工作模式(输入)、IO口速度。\n- (3)循环读取IO电平,判断按键是否按下。\n 二、硬件原理图\n&lt;img src=\"./LV030-按键检测/img/image-20230506221837788.png\" alt=\"image-20230506221837788\" style=\"zoom:50%;\" /\n 三、STM32CubeMX配置\n&lt;img src=\"./LV030-按键检测/img/image-20230506222110861.png\" alt=\"image-20230506222110"
      },
      {
        "url": "/sdoc/peripheral/gpio/126b08e805ca1e15c40474c4.html",
        "relativePath": "/sdoc/20-基本外设篇/01-GPIO/LV020-GPIO控制LED.html",
        "frontmatter": {
          "title": "LV020-GPIO控制LED",
          "date": "2025-09-20 22:42:02",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/gpio/126b08e805ca1e15c40474c4",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "5c40474c47fc44e49114f4489f7fb359",
            "useduuid": "5c40474c4"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV020-GPIO控制LED",
        "date": "2025-09-20 22:42:02",
        "excerpt": "",
        "capture": "一、基本步骤\n这个实例主要是通过GPIO点亮LED灯。一般步骤如下:\n- (1)使能IO口时钟。\n- (2)初始化IO口模式,包括GPIO工作模式(输出)、IO口速度。使用STM32CubeMX软件来进行图形化配置的话要注意一下上下拉的设置,不然很可能有莫名其妙的坑。\n- (3)操作IO口,输出高低电平。\n【注意】可以一次初始化一个IO组下的多个IO,前提是这些IO口的配置方式一样。\n 二、硬件原理图\n&lt;img src=\"./LV020-GPIO控制LED/img/image-20230506221050587.png\" alt=\"image-20230506221050587\" sty"
      },
      {
        "url": "/sdoc/peripheral/gpio/126b08e804d303ad5b541ecd.html",
        "relativePath": "/sdoc/20-基本外设篇/01-GPIO/LV010-输入输出模式详解.html",
        "frontmatter": {
          "title": "LV010-输入输出模式详解",
          "date": "2025-09-20 22:39:55",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/gpio/126b08e804d303ad5b541ecd",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "d5b541ecde0f4e1799e17d09e88a33fa",
            "useduuid": "d5b541ecd"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV010-输入输出模式详解",
        "date": "2025-09-20 22:39:55",
        "excerpt": "",
        "capture": "这篇笔记主要是详细学习一下GPIO输入输出各种模式(推挽、开漏、准双向端口)。\n 一、概述\n 1. IO模式说明\n概括地说,IO的功能模式大致可以分为输入、输出以及输入输出双向三大类。其中作为基本输入IO,相对比较简单,主要涉及的知识点就是高阻态;作为输出IO,相比于输入复杂一些,工作模式主要有开漏(Open Drain)模式和推挽(Push-Pull)模式,这一部分涉及的知识点比较多;对于输入输出IO,容易产生疑惑的地方是准双向和双向端口的区别。\n 2. MOS管基础\n这里学习一下P-MOS和N-MOS导通的条件,前面后边都给我整糊涂了,这里记录一下,如下图为P-MOS和N-MOS导通时的电"
      },
      {
        "url": "/sdoc/peripheral/gpio/126b08e802d21f6e4f658296.html",
        "relativePath": "/sdoc/20-基本外设篇/01-GPIO/LV001-STM32的GPIO简介.html",
        "frontmatter": {
          "title": "LV001-STM32的GPIO简介",
          "date": "2025-09-20 22:34:42",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/gpio/126b08e802d21f6e4f658296",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "e4f658296d8f440694a80e81f31777d4",
            "useduuid": "e4f658296"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV001-STM32的GPIO简介",
        "date": "2025-09-20 22:34:42",
        "excerpt": "",
        "capture": "一、GPIO简介\nGPIO是通用输入输出端口的简称,简单来说就是STM32可控制的引脚,STM32芯片的GPIO引脚与外部设备连接起来,从而实现与外部通讯、控制以及数据采集的功能。 STM32芯片的GPIO被分成很多组,每组有16个引脚(也有可能少于16个),如型号为STM32F103ZET6型号的芯片有GPIOA、GPIOB、GPIOC至GPIOG共7组GPIO,一共就有16x7=112个IO,该芯片一共144个引脚,其中GPIO引脚就占了一大部分,所有的GPIO引脚都有基本的输入输出功能。\n最基本的输出功能是由STM32控制引脚输出高、低电平,实现开关控制,如把GPIO引脚接入到LED灯,"
      },
      {
        "url": "/sdoc/basic/stm32setup/126b08e7afad049a561ccf1b.html",
        "relativePath": "/sdoc/10-基础篇/20-STM32的启动/LV010-在内部SRAM调试.html",
        "frontmatter": {
          "title": "LV010-在内部SRAM调试",
          "date": "2025-09-20 20:21:57",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/basic/stm32setup/126b08e7afad049a561ccf1b",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "a561ccf1b5d3443c85b0f21280803c3a",
            "useduuid": "a561ccf1b"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV010-在内部SRAM调试",
        "date": "2025-09-20 20:21:57",
        "excerpt": "",
        "capture": "一、在RAM中调试代码\n 1. 简介\n一般情况下,我们在 MDK 中编写工程应用后,调试时都是把程序下载到芯片的内部 FLASH 运行测试的,代码的 CODE 及 RW-data 的内容被写入到内部 FLASH 中存储。但在某些应用场合下却不希望或不能修改内部 FLASH 的内容,这时就可以使用 RAM 调试功能了,它的本质是把原来存储在内部 FLASH 的代码 (CODE 及 RW-data 的内容) 改为存储到 SRAM 中 (内部 SRAM 或外部 SDRAM 均可),芯片复位后从 SRAM 中加载代码并运行。 \n 2. 优缺点\n把代码下载到 RAM 中调试有如下优点 :\n(1)下载程序"
      },
      {
        "url": "/sdoc/basic/stm32setup/126b08e78de70b59cd9ba362.html",
        "relativePath": "/sdoc/10-基础篇/20-STM32的启动/LV005-启动过程.html",
        "frontmatter": {
          "title": "LV005-启动过程",
          "date": "2025-09-20 19:35:11",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/basic/stm32setup/126b08e78de70b59cd9ba362",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "9cd9ba36208d49f99352645293a0d904",
            "useduuid": "9cd9ba362"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV005-启动过程",
        "date": "2025-09-20 19:35:11",
        "excerpt": "",
        "capture": "这一部分主要是分析STM32的启动流程,我们将会接触到内部FLASH的相关内容。\n 一、内部FLASH\n这里了解一下内部Flash的一些内容,并不涉及对内部Flash读写等相关操作。\n 1. FLASH简介\nflash是存储芯片的一种,通过特定的程序可以修改里面的数据。FLASH在电子以及半导体领域内往往表示 Flash Memory 的意思,即平时所说的“闪存”,全名叫 Flash EEPROM Memory。它结合了ROM和RAM的长处,不仅具备电子可擦除可编程(EEPROM)的性能,还可以快速读取数据(NVRAM的优势),使数据不会因为断电而丢失。\n在STM32芯片内部有一个FLASH存"
      },
      {
        "url": "/sdoc/basic/stm32setup/126b08e788e83383285742cb.html",
        "relativePath": "/sdoc/10-基础篇/20-STM32的启动/LV001-启动文件.html",
        "frontmatter": {
          "title": "LV001-启动文件",
          "date": "2025-09-20 19:22:32",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/basic/stm32setup/126b08e788e83383285742cb",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "3285742cb8d24fba98867646d8e8231b",
            "useduuid": "3285742cb"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV001-启动文件",
        "date": "2025-09-20 19:22:32",
        "excerpt": "",
        "capture": "这一节我们来分析一下MDK工程中的STM32启动文件。\n 一、启动方式\n- 参考10-基础篇/20-STM32的启动/LV005-启动过程.md和Cortex-M3 权威指南的3.8 复位序列\n在离开复位状态后,CM3做的第一件事就是读取下列两个32位整数的值:\n(1)从地址0x0000,0000处取出MSP的初始值。 \n(2)从地址0x0000,0004 处取出PC的初始值——这个值是复位向量,LSB必须是1。然后从这个值所对应的地址处取指。 \n&lt;img src=\"./LV001-启动文件/img/image-20250924071704950.png\" alt=\"image-2025"
      },
      {
        "url": "/sdoc/basic/stm32basic/126b08e7828f108bc0b2f2dc.html",
        "relativePath": "/sdoc/10-基础篇/10-STM32基础/LV030-STM32程序下载.html",
        "frontmatter": {
          "title": "LV030-STM32程序下载",
          "date": "2025-09-20 19:06:07",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/basic/stm32basic/126b08e7828f108bc0b2f2dc",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "bc0b2f2dc98042cb8e44dc7aa1995faa",
            "useduuid": "bc0b2f2dc"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV030-STM32程序下载",
        "date": "2025-09-20 19:06:07",
        "excerpt": "",
        "capture": "一、创建MDK工程\n- 参考:01-开发工具/01-keil/LV002-工程创建.md\n其中MDK版本和芯片支持包的版本如下:\n- 参考:01-开发工具/02-STM32Cube/LV002-STM32CubeMX工程创建.md\nSTM32CubeMX的版本如下:\n&lt;img src=\"./LV030-STM32程序下载/img/image-20250920223052679.png\" alt=\"image-20250920223052679\" style=\"zoom:50%;\" /\n 二、生成hex文件\n首先当然是生成成果物文件啦,我们使用MDK编写完程序后,要生成一个可以下载到开发板"
      },
      {
        "url": "/sdoc/dev-tool/keil/126b08e76d70287e70afead6.html",
        "relativePath": "/sdoc/01-开发工具/01-keil/LV040-在线调试.html",
        "frontmatter": {
          "title": "LV040-在线调试",
          "date": "2025-09-20 18:52:00",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/dev-tool/keil/126b08e76d70287e70afead6",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "e70afead6dd14692ad3b3749eb2cad4d",
            "useduuid": "e70afead6"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV040-在线调试",
        "date": "2025-09-20 18:52:00",
        "excerpt": "",
        "capture": "有了J-Link或者ST-Link,我们就可以在线调试代码,这里以我我使用的J-Link为例,简单介绍一下界面,后边的功能就自己摸索吧。\n 一、连接与配置\n最开始肯定是连接好J-Link、电脑和开发板啦,然后就是MDK工程的配置,这个可以看前边J-Link的使用。\n- 01-开发工具/10-下载与调试/LV002-JLink怎么使用.md\n- 01-开发工具/10-下载与调试/LV015-STLink怎么使用.md\n 二、开始在线调试\n 1. 启动\n我们可以点击工具栏的这个按钮进入调试,或者就是从菜单栏【Debug】&rarr;【Start/Stop Debug Session】启动:\n&lt"
      },
      {
        "url": "/sdoc/dev-tool/keil/126b08e6f2e40a653e71bc02.html",
        "relativePath": "/sdoc/01-开发工具/02-STM32Cube/LV015-LD链接脚本.html",
        "frontmatter": {
          "title": "LV040-LD链接脚本",
          "date": "2025-09-20 15:38:28",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/dev-tool/keil/126b08e6f2e40a653e71bc02",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "53e71bc02dd346aeac5749700b205317",
            "useduuid": "53e71bc02"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV040-LD链接脚本",
        "date": "2025-09-20 15:38:28",
        "excerpt": "<p>这篇笔记主要是STM32CubeMX软件生成的STM32F103ZETx_FLASH.ld链接文件的学习笔记。这篇笔记按照顺序从上到下分析STM32F103ZETx_FLASH.ld文件。关于GNU链接脚本的详细语法我们可以参考这里:<a href=\"https://sourceware.org/binutils/docs/\" target=\"_blank\" rel=\"noreferrer\">Documentation for binutils 2.40 (sourceware.org)</a>,这里好像还有在线的文档。**【注意】**生成Makefile文件的话,链接脚本是自动生成的,并且每一次重新生成的时候,<strong>链接脚本将会重新生成</strong>,也就是说,若是我们修改了链接脚本内容的话,只要我们通过STM32CubeMX更新工程,我们修改的部分都会被删除。</p>\n",
        "capture": "这篇笔记主要是STM32CubeMX软件生成的STM32F103ZETx_FLASH.ld链接文件的学习笔记。这篇笔记按照顺序从上到下分析STM32F103ZETx_FLASH.ld文件。关于GNU链接脚本的详细语法我们可以参考这里:Documentation for binutils 2.40 (sourceware.org),这里好像还有在线的文档。【注意】生成Makefile文件的话,链接脚本是自动生成的,并且每一次重新生成的时候,链接脚本将会重新生成,也就是说,若是我们修改了链接脚本内容的话,只要我们通过STM32CubeMX更新工程,我们修改的部分都会被删除。\n 一、参考资料\n关于链"
      },
      {
        "url": "/sdoc/dev-tool/stm32cube/126b08e6f0211b46eabe9106.html",
        "relativePath": "/sdoc/01-开发工具/02-STM32Cube/LV030-STM32CubeIDE.html",
        "frontmatter": {
          "title": "LV030-STM32CubeIDE",
          "date": "2025-09-20 15:31:21",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/dev-tool/stm32cube/126b08e6f0211b46eabe9106",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "6eabe9106e39465d81b7853e19f74deb",
            "useduuid": "6eabe9106"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV030-STM32CubeIDE",
        "date": "2025-09-20 15:31:21",
        "excerpt": "",
        "capture": "一、STM32CubeIDE简介\n偶然看到STM32CubeIDE这个么一个软件,它是ST官方推出的IDE,它已经集成了芯片选型,外设配置,代码生成,代码编译,程序烧录和程序调试等一系列功能,可以说STM32CubeMX是它的其中一个功能而已。这里对这个软件做一个简单的了解。\n 1. 简介\nSTM32CubeIDE是一种高级C/C++开发平台,具有STM32微控制器和微处理器的外设配置、代码生成、代码编译和调试功能。它基于Eclipse®/CDT™框架和用于开发的GCC工具链,以及用于调试的GDB。它支持集成数以百计的现有插件,正是这些插件使Eclipse® IDE的功能趋于完整。\nSTM32"
      },
      {
        "url": "/sdoc/dev-tool/stm32cube/126b08e6ef7626b7c442bfe2.html",
        "relativePath": "/sdoc/01-开发工具/02-STM32Cube/LV012-Makefile文件分析.html",
        "frontmatter": {
          "title": "LV012-Makefile文件分析",
          "date": "2025-09-20 15:29:50",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/dev-tool/stm32cube/126b08e6ef7626b7c442bfe2",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "7c442bfe2f7348608819bf852cebb54e",
            "useduuid": "7c442bfe2"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV012-Makefile文件分析",
        "date": "2025-09-20 15:29:50",
        "excerpt": "",
        "capture": "这篇笔记主要是STM32CubeMX软件生成的Makefile文件的学习笔记。这篇笔记按照顺序从上到下分析Makefile文件。\n 一、完整的Makefile文件\n```makefile\n File automatically-generated by tool: [projectgenerator] version: [3.19.2] date: [Thu Apr 27 16:55:10 CST 2023] \n ------------------------------------------------\n Generic Makefile (based on gcc)\n ChangeLo"
      },
      {
        "url": "/sdoc/dev-tool/stm32cube/126b08e6edcf211c7df7916d.html",
        "relativePath": "/sdoc/01-开发工具/02-STM32Cube/LV010-Makefile管理工程.html",
        "frontmatter": {
          "title": "LV010-Makefile管理工程",
          "date": "2025-09-20 15:25:27",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/dev-tool/stm32cube/126b08e6edcf211c7df7916d",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "c7df7916d51c40f295ec8bdf0e20a228",
            "useduuid": "c7df7916d"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV010-Makefile管理工程",
        "date": "2025-09-20 15:25:27",
        "excerpt": "",
        "capture": "一、STM32CubeMX生成工程\n 1. 生成Makefile\n前边我们已经熟悉了一下STM32CubeMX软件的使用方法,以及创建和导出MDK工程的过程,接下来我们创建一个含有Makefile文件的工程。\n- (1)【File】&rarr;【New Project】\n&lt;img src=\"./LV010-Makefile管理工程/img/image-20230419232250397.png\" alt=\"image-20230419232250397\"  /\n- (2)【选择芯片型号】&rarr;【Start Project】\n&lt;img src=\"./LV010-Makefile"
      },
      {
        "url": "/sdoc/dev-tool/keil/126b08e6d335070a7fd1934d.html",
        "relativePath": "/sdoc/01-开发工具/01-keil/LV025-SCT文件应用.html",
        "frontmatter": {
          "title": "LV025-SCT文件应用",
          "date": "2025-09-20 14:57:17",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/dev-tool/keil/126b08e6d335070a7fd1934d",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "a7fd1934dbcb4eef93f57d3dce4e0059",
            "useduuid": "a7fd1934d"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV025-SCT文件应用",
        "date": "2025-09-20 14:57:17",
        "excerpt": "",
        "capture": "这一篇笔记主要是通过SCT文件来实现变量的分配位置,这里需要后边FSMC驱动SRAM的知识。由于内存管理对应用程序非常重要,若修改 sct 文件,不使用默认配置,对工程影响非常大,容易导致出错,所以我们这里也是跟着教程做了两个实验,来学习 sct 文件的应用细节。\n\n 一、自定义SCT文件\n注意这里我们要根据上一节笔记,取消MDK使用默认的SCT文件。\n&lt;img src=\"./LV025-SCT文件应用/img/image-20230529215228408.png\" alt=\"image-20230529215228408\" style=\"zoom: 50%;\" /&gt;\n在 MDK"
      },
      {
        "url": "/sdoc/dev-tool/keil/126b08e6cfb5032dbc05b46a.html",
        "relativePath": "/sdoc/01-开发工具/01-keil/LV020-SCT分散加载文件.html",
        "frontmatter": {
          "title": "LV020-SCT分散加载文件",
          "date": "2025-09-20 14:48:21",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/dev-tool/keil/126b08e6cfb5032dbc05b46a",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "dbc05b46abca47d8a176762f5148dc50",
            "useduuid": "dbc05b46a"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV020-SCT分散加载文件",
        "date": "2025-09-20 14:48:21",
        "excerpt": "",
        "capture": "这里继续学习MDK的工程文件`*.sct`,使用的工程呢可以去这里下载:ebf_stm32f103_badao_std_code: 野火STM32F103 霸道开发板 标准库教程配套代码 (gitee.com)\n\n 一、sct分散加载文件简介\n当工程按默认配置构建时,MDK会根据我们选择的芯片型号,获知芯片的内部FLASH及内部SRAM存储器概况,生成一个以工程名命名的后缀为\\*.sct的分散加载文件(Linker Control File,scatter loading),链接器根据该文件的配置分配各个节区地址,生成分散加载代码,因此我们通过修改该文件可以定制具体节区的存储位置。例如,我们可"
      },
      {
        "url": "/sdoc/dev-tool/keil/126b08e6a9c4187125e57a5f.html",
        "relativePath": "/sdoc/01-开发工具/01-keil/LV010-程序与编译.html",
        "frontmatter": {
          "title": "LV010-程序与编译",
          "date": "2025-09-20 13:51:08",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/dev-tool/keil/126b08e6a9c4187125e57a5f",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "125e57a5ff854ebaa58b6fff51b99a11",
            "useduuid": "125e57a5f"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV010-程序与编译",
        "date": "2025-09-20 13:51:08",
        "excerpt": "",
        "capture": "一、编译过程\n 1. 编译过程简介\n我们简单了解下MDK的编译过程,它与其它编译器的工作过程是类似的:\n&lt;img src=\"./LV010-程序与编译/img/MDK002.jpg\" alt=\"MDK编译过程\" style=\"zoom: 67%;\" /\n(1) 编译,MDK软件使用的编译器是 armcc 和 armasm , 它们根据每个C/C++和汇编源文件编译成对应的以“ .o ”为后缀名的对象文件(Object Code,也称目标文件), 其内容主要是从源文件编译得到的机器码,包含了代码、数据以及调试使用的信息;\n(2) 链接, 链接器 armlink 把各个 .o 文件及库文件链"
      },
      {
        "url": "/sdoc/basic/overview/126b08e6a7051c291c1151a6.html",
        "relativePath": "/sdoc/10-基础篇/01-概述/LV022-CortexM0存储器映射.html",
        "frontmatter": {
          "title": "LV022-CortexM0存储器映射",
          "date": "2025-09-20 13:44:05",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/basic/overview/126b08e6a7051c291c1151a6",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "91c1151a6b3c4a07b26e0383912b8543",
            "useduuid": "91c1151a6"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV022-CortexM0存储器映射",
        "date": "2025-09-20 13:44:05",
        "excerpt": "",
        "capture": "一、存储器映射\n后面学习STM32的存储器映射的时候,有用到过M0架构的STM32F05x系列芯片,部分笔记记录在这里:\n&lt;img src=\"./LV022-CortexM0存储器映射/img/image-20230409205001077.png\" alt=\"image-20230409205001077\" style=\"zoom:33%;\" /\n被控单元的FLASH,RAM和AHB到APB的桥(即片上外设),这些功能部件共同排列在一个 4GB 的地址空间内。我们在编程的时候,可以通过他们的地址找到他们,然后来操作他们。存储器本身没有地址,给存储器分配地址的过程叫存储器映射。\n&lt;"
      },
      {
        "url": "/sdoc/basic/stm32basic/126b08e6a53918eab18839bd.html",
        "relativePath": "/sdoc/10-基础篇/10-STM32基础/LV050-STM32地址重映射.html",
        "frontmatter": {
          "title": "LV050-STM32地址重映射",
          "date": "2025-09-20 13:39:45",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/basic/stm32basic/126b08e6a53918eab18839bd",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "ab18839bd52b440b9ca51fa34ea3d714",
            "useduuid": "ab18839bd"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV050-STM32地址重映射",
        "date": "2025-09-20 13:39:45",
        "excerpt": "",
        "capture": "一、地址重映射\n这一部分还是以STM42F429为例。F429的中文手册可以看这里:RM0090_STM32F40xxx、STM32F41xxx、STM32F42xxx、STM32F43xx参考手册\n 1. 自举的概念\n自举(bootstrap)计算机设备使用硬件加载的程序,用于初始化足够的软件来查找并加载功能完整的操作系统。也用来描述加载自举程序的过程。什么是单片机的自举?单片机的自举就是单片机的启动。\n我们说,单片机程序基本都是从0地址出开始运行的,F429的0x00000000\\~0x001FFFFF地址映射了到什么存储器上,那么就从该存储器上读取指令,开始运行。\n至于说0x000000"
      },
      {
        "url": "/sdoc/basic/stm32basic/126b08e6840f3457e72c8780.html",
        "relativePath": "/sdoc/10-基础篇/10-STM32基础/LV045-STM32存储器系统.html",
        "frontmatter": {
          "title": "LV045-STM32存储器系统",
          "date": "2025-09-20 12:54:55",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/basic/stm32basic/126b08e6840f3457e72c8780",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "7e72c87803ee4322bcd1072590f70cb3",
            "useduuid": "7e72c8780"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV045-STM32存储器系统",
        "date": "2025-09-20 12:54:55",
        "excerpt": "",
        "capture": "一、基本概念\n 1. 寄存器\n 1.1 什么是寄存器?\n寄存器是计算机和微处理器内部的一种高速、小容量的存储单元,主要用于暂存指令、数据和地址。它是CPU或其他硬件组件直接操作的对象,访问速度远高于内存(RAM)。\n可以将其理解为 “工作台”:\n- CPU内核寄存器 是工程师(CPU)手边最顺手的工具,直接参与加工。\n- 外设寄存器 是工程师与外部机器(外设)进行控制和状态交互的控制面板。\n 1.2 寄存器分类\n寄存器根据其功能和位置,可以分为两个截然不同的层级。\n 1.2.1 CPU内核寄存器 (Core Registers)\n这类寄存器位于中央处理单元(CPU)内部,是CPU核心的一部分。"
      },
      {
        "url": "/sdoc/basic/stm32basic/126b08e6831f0a0031c3f015.html",
        "relativePath": "/sdoc/10-基础篇/10-STM32基础/LV040-STM32系统架构.html",
        "frontmatter": {
          "title": "LV040-STM32系统架构",
          "date": "2025-09-20 12:52:15",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/basic/stm32basic/126b08e6831f0a0031c3f015",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "031c3f0159bd41bfa7f2e89f6b50e340",
            "useduuid": "031c3f015"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV040-STM32系统架构",
        "date": "2025-09-20 12:52:15",
        "excerpt": "",
        "capture": "一、STM32简介\n 1. 回顾\n2007 年 6 月, ST 在北京发布了全球第一款基于 ARM Cortex M3 内核的 32 位通用微控制器芯片: STM32F103,以优异的性能,丰富的资源,超高的性价比,迅速占领市场,从此一鸣惊人,一发不可收拾,截止到 2020 年 6 月, STM32 累计出货量超过 45 亿颗。  \n后面学习的STM32就是用的下图中的STM32F103ZET6:\n&lt;img src=\"./LV040-STM32系统架构/img/image-20250920125818906.png\" alt=\"image-20250920125818906\" style"
      },
      {
        "url": "/sdoc/basic/stm32basic/126b08e608d01035e7260fce.html",
        "relativePath": "/sdoc/10-基础篇/10-STM32基础/LV021-认识HAL库.html",
        "frontmatter": {
          "title": "LV021-认识HAL库",
          "date": "2025-09-20 09:39:04",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/basic/stm32basic/126b08e608d01035e7260fce",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "5e7260fce3184ab293e2a218bc58687b",
            "useduuid": "5e7260fce"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV021-认识HAL库",
        "date": "2025-09-20 09:39:04",
        "excerpt": "<p>HAL,英文全称 Hardware Abstraction Layer,即硬件抽象层。 HAL 库是 ST 公司提供的外设驱动代码的驱动库,用户只需要调用库的 API 函数,便可间接配置寄存器。我们要写程序控制 STM32 芯片,其实最终就是控制它的寄存器,使之工作在我们需要的模式下, HAL 库将大部分寄存器的操作封装成了函数,我们只需要学习和掌握 HAL 库函数的结构和用法,就能方便地驱动 STM32 工作, 以节省开发时间。</p>\n<blockquote>\n<p>主要是ST官网主推的现在就是这个HAL库,而且STM32CubeMX软件生成工程也是用的这个,所以还是有必要学习一下。</p>\n</blockquote>\n",
        "capture": "HAL,英文全称 Hardware Abstraction Layer,即硬件抽象层。 HAL 库是 ST 公司提供的外设驱动代码的驱动库,用户只需要调用库的 API 函数,便可间接配置寄存器。我们要写程序控制 STM32 芯片,其实最终就是控制它的寄存器,使之工作在我们需要的模式下, HAL 库将大部分寄存器的操作封装成了函数,我们只需要学习和掌握 HAL 库函数的结构和用法,就能方便地驱动 STM32 工作, 以节省开发时间。  \n\n 一、HAL库驱动包\n 1. 下载STM32CubeF1固件\n直接来这里下载:STM32CubeF1 | Product - 意法半导体STMicroelec"
      },
      {
        "url": "/sdoc/basic/stm32basic/126b08e603011c2e21862cc6.html",
        "relativePath": "/sdoc/10-基础篇/10-STM32基础/LV020-STM32怎么开发.html",
        "frontmatter": {
          "title": "LV020-STM32怎么开发",
          "date": "2025-09-20 09:24:17",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/basic/stm32basic/126b08e603011c2e21862cc6",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "e21862cc6b54423c827258b8732bcdd8",
            "useduuid": "e21862cc6"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV020-STM32怎么开发",
        "date": "2025-09-20 09:24:17",
        "excerpt": "",
        "capture": "一、开发方式\n这篇笔记是已经对STM32有了一定的了解后才写的,其实STM32的开发大概有四种方式\n- (1)汇编,强的一批,我们可以直接使用内部寄存器和STM32的寄存器来使用汇编开发,难度可想而知。\n- (2)C语言+寄存器开发,这种相对容易,毕竟C语言我们都学过,无非是寄存器超级多。\n- (3)C语言+标准库,这个是我入门STM32的时候最先使用的库,一般都用这个。\n- (4)C语言+HAL库,HAL库配合STM32CubeMX软件使用,由于图形化的配置界面,这个HAL库据说是ST以后主推的库。\n 二、库开发与寄存器开发的关系  \n一般我们都是从学 51 单片机开发转而学习 STM32 "
      },
      {
        "url": "/sdoc/basic/stm32basic/126b08e600543a33cc0a657a.html",
        "relativePath": "/sdoc/10-基础篇/10-STM32基础/LV010-嵌入式C语言.html",
        "frontmatter": {
          "title": "LV010-嵌入式C语言",
          "date": "2025-09-20 09:17:32",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/basic/stm32basic/126b08e600543a33cc0a657a",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "3cc0a657a05d403785cc85fa30a99505",
            "useduuid": "3cc0a657a"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV010-嵌入式C语言",
        "date": "2025-09-20 09:17:32",
        "excerpt": "",
        "capture": "其实之前就学习过C预言了,语法什么的在嵌入式中都是一模一样的,就是有些数据类型还有相关操作可以再熟悉一下。\n 一、STM32支持的数据类型\n以STM32F103ZE这一款芯片为例,这是一块32bit的MCU,基本数据类型在此款芯片中的数据长度,以及在HAL库函数中的定义( stdint.h文件中的定义,采用C99标准)如下图:\n&lt;img src=\"./LV010-嵌入式C语言/img/image-20230418221356751.png\" alt=\"image-20230418221356751\" style=\"zoom: 80%;\" /\n 建议在开发过程中使用库定义的数据类型, 来定"
      },
      {
        "url": "/sdoc/basic/stm32basic/126b08e5feaa2043ad05a48e.html",
        "relativePath": "/sdoc/10-基础篇/10-STM32基础/LV001-STM32概述.html",
        "frontmatter": {
          "title": "LV001-STM32概述",
          "date": "2025-09-20 09:13:06",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/basic/stm32basic/126b08e5feaa2043ad05a48e",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "3ad05a48eac840679287e1b2301b039a",
            "useduuid": "3ad05a48e"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV001-STM32概述",
        "date": "2025-09-20 09:13:06",
        "excerpt": "",
        "capture": "一、STM32简介\n 1. STM32与ARM\n在2004年, ARM公司推出新一代Cortex内核后, ST公司抓住机遇,在很短的时间内就向市场推出了一系列的32位微控制器, 同时提供基于库的开发模式,加快用户研发周期。 STM32就是ST公司基于ARM Cortex-M系列内核设计的微控制器,专为高性能、低功耗、低成本场景设计。  \nSTM32如今产品系列非常丰富, 主要为ARM Cortex-M内核系列MCU,也开始涉及ARM Cortex-A内核\n系列MPU,如下图所示。 \n&lt;img src=\"./LV001-STM32概述/img/image-20230417223005421"
      },
      {
        "url": "/sdoc/basic/overview/126b08e5fb5429a0009ffc8b.html",
        "relativePath": "/sdoc/10-基础篇/01-概述/LV045-CortexM3的NVIC中断控制.html",
        "frontmatter": {
          "title": "LV040-CortexM3的NVIC中断控制",
          "date": "2025-09-20 09:04:52",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/basic/overview/126b08e5fb5429a0009ffc8b",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "0009ffc8b07a4e459a29f0ba0518592b",
            "useduuid": "0009ffc8b"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV040-CortexM3的NVIC中断控制",
        "date": "2025-09-20 09:04:52",
        "excerpt": "",
        "capture": "一、NVIC简介\nCortex-M3内核有一个专门管理中断的外设NVIC( Nested Vectored Interrupt Controller,嵌套向量中断控制器) , 通过优先级控制中断的嵌套和调度。NVIC是一个总的中断控制器, 无论是来在内核的异常还是外设的外部中断, 都由NVIC统一进行管理。 是 Cortex‐M3 不可分离的一部分, 它与 CM3 内核的逻辑紧密耦合, 有一部分甚至水乳交融在一起。 \nNVIC 与 CM3 内核同声相应,同气相求,相辅相成,里应外合,共同完成对中断的响应。 NVIC作为在内核里的外设,NVIC 的寄存器以存储器映射的方式来访问, 除了包含控制寄"
      },
      {
        "url": "/sdoc/basic/overview/126b08e5d7b911b28ed9ee4c.html",
        "relativePath": "/sdoc/10-基础篇/01-概述/LV040-CortexM3异常.html",
        "frontmatter": {
          "title": "LV040-CortexM3异常",
          "date": "2025-09-20 08:13:37",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/basic/overview/126b08e5d7b911b28ed9ee4c",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "28ed9ee4c4ee4374a05b403be9d08519",
            "useduuid": "28ed9ee4c"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV040-CortexM3异常",
        "date": "2025-09-20 08:13:37",
        "excerpt": "",
        "capture": "一、常见缩略语含义\n| 缩写 | 说明                               |\n| ---- | ---------------------------------- |\n| IRQ  | 中断请求(通常是指外部中断的请求) |\n| ISR  | 中断服务例程                       |\n| NMI  | 不可屏蔽中断                       |\n| NVIC | 嵌套向量中断控制器                 |\n| PSP  | 进程堆栈指针                       |\n 二、异常\n 1. 什么是异常?"
      },
      {
        "url": "/sdoc/basic/overview/126b08c73d361161792b640a.html",
        "relativePath": "/sdoc/10-基础篇/01-概述/LV035-CortexM3存储器系统.html",
        "frontmatter": {
          "title": "LV035-CortexM3存储器系统",
          "date": "2025-09-18 07:57:02",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/basic/overview/126b08c73d361161792b640a",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "1792b640ad2b40c1a34cc0ea4da24ed9",
            "useduuid": "1792b640a"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV035-CortexM3存储器系统",
        "date": "2025-09-18 07:57:02",
        "excerpt": "",
        "capture": "本篇笔记主要来自于《Cortex-M3 权威指南》的第五章存储器系统。其实有一部分概念在后边一篇笔记中才有所体现,比如什么是寄存器?。\n 一、存储器映射\nCM3 只有一个单一固定的存储器映射。这一点极大地方便了软件在各种 CM3 单片机间的移植。举个简单的例子,各款 CM3 单片机的 NVIC 和 MPU 都在相同的位置布设寄存器,使得它们变得通用。尽管如此, CM3 定出的条条框框是粗线条的,它依然允许芯片制造商灵活地分配存储器空间,以制造出各具特色的单片机产品。存储空间的一些位置用于调试组件等私有外设,这个地址段被称为“ 私有外设区”。私有外设区的组件包括:  \n(1)闪存地址重载及断点单"
      },
      {
        "url": "/sdoc/basic/overview/126b08c73a222946645cba90.html",
        "relativePath": "/sdoc/10-基础篇/01-概述/LV030-CortexM3简介.html",
        "frontmatter": {
          "title": "LV030-CortexM3简介",
          "date": "2025-09-18 07:49:14",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/basic/overview/126b08c73a222946645cba90",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "6645cba90f414432ac823c9d1938fc37",
            "useduuid": "6645cba90"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV030-CortexM3简介",
        "date": "2025-09-18 07:49:14",
        "excerpt": "",
        "capture": "一、概述\nARM(Advanced RISC Machine)是一个32位精简指令集(RISC)处理器架构,应用于许多嵌入式系统设计中。其中,自从ARMv7系列架构开始,ARM公司推出了Cortex系列,并根据不同的应用场景推出了Cortex-M,Cortex-A和Cortex-R三款不同方向的产品。\nARM代表了一种芯片标准,体现了芯片的架构设计,而具体涉及到存储器容量,片上外设,IO引脚数等实现,则是由不同的芯片厂商进行设计的。\n 二、内核与芯片\nARM公司提供内核(如Cortex M3,简称CM3,下同)授权,完整的MCU还需要很多其他组件。芯片公司(ST、 NXP、 TI、 GD、华大"
      },
      {
        "url": "/sdoc/basic/overview/126b08c738bc16b5b982661d.html",
        "relativePath": "/sdoc/10-基础篇/01-概述/LV020-CortexM0简介.html",
        "frontmatter": {
          "title": "LV020-CortexM0简介",
          "date": "2025-09-18 07:45:56",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/basic/overview/126b08c738bc16b5b982661d",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "5b982661dbf54e3db91954b53e220c58",
            "useduuid": "5b982661d"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV020-CortexM0简介",
        "date": "2025-09-18 07:45:56",
        "excerpt": "",
        "capture": "课程中使用的是STM32F0系列的芯片,用的是Cortex-M0的内核,所以这里的笔记是关于Cortex-M0的,对于我后来使用Cortex-M3内核大体上的的知识是基本通用的。\n 一、Cortex-M0处理器简介\n 1. Cortex-M 系列产品\nCortex-M 系列产品主要包括 Cortex-M0、Cortex-M1、Cortex-M3、Cortex-M4、Cortex-M7 等,其中 Cortex-M0 主打低功耗和混合信号的处理,M3 主要用来替代 ARM7,重点侧重能耗与性能的平衡,而 M7 则重点放在高性能控制运算领域。\n&lt;img src=\"./LV020-CortexM"
      },
      {
        "url": "/sdoc/basic/overview/126b08ba13b3329986816cf4.html",
        "relativePath": "/sdoc/10-基础篇/01-概述/LV010-常见存储器.html",
        "frontmatter": {
          "title": "LV010-常见存储器",
          "date": "2025-09-17 21:31:07",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/basic/overview/126b08ba13b3329986816cf4",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "986816cf43ae496ea97f2ac2344cf4bc",
            "useduuid": "986816cf4"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV010-常见存储器",
        "date": "2025-09-17 21:31:07",
        "excerpt": "",
        "capture": "一、单片机中的FLASH和SRAM\n我们在进行STM32芯片选型的时候,会看到这样的参数,可以看STM32F103选型页面:\n&lt;img src=\"./LV010-常见存储器/img/image-20230504212342232.png\" alt=\"image-20230504212342232\" style=\"zoom:50%;\" /\n比如这里,我们使用的STM32F103ZE系列芯片,有512KB的Flash和64KB的SRAM,这是什么意思呢?\n在STM32中 SRAM 及 FLASH 是作为内存和程序存储空间的。我们平时使用电脑,会考虑内存大小,有4GB、8GB、16GB等,也会"
      },
      {
        "url": "/sdoc/basic/overview/126b08ba0eae364f31526d00.html",
        "relativePath": "/sdoc/10-基础篇/01-概述/LV001-ARM体系结构.html",
        "frontmatter": {
          "title": "LV001-ARM体系结构",
          "date": "2025-09-17 21:18:22",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/basic/overview/126b08ba0eae364f31526d00",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "f31526d004e841cf942bb1c43e30f261",
            "useduuid": "f31526d00"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV001-ARM体系结构",
        "date": "2025-09-17 21:18:22",
        "excerpt": "",
        "capture": "一、 ARM简介\n 1. 为什么要学习ARM?\n在我们的生活中,STM32的应用得很广泛,像下边这些产品,可能都会用到STM32:\n&lt;img src=\"./LV001-ARM体系结构/img/image-20230408170339636.png\" alt=\"image-20230408170339636\" style=\"zoom:33%;\" /\n而STM32是一个微处理器,也就是MCU,它的结构一般如下:\n&lt;img src=\"./LV001-ARM体系结构/img/image-20230408170245470.png\" alt=\"image-20230408170245470\""
      },
      {
        "url": "/sdoc/dev-tool/burn-and-debug/126b08b9cea618afd74b243b.html",
        "relativePath": "/sdoc/01-开发工具/10-下载与调试/LV030-串口下载.html",
        "frontmatter": {
          "title": "LV030-串口下载",
          "date": "2025-09-17 19:54:30",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/dev-tool/burn-and-debug/126b08b9cea618afd74b243b",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "fd74b243b22149fe9c55a56a7b50b6d5",
            "useduuid": "fd74b243b"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV030-串口下载",
        "date": "2025-09-17 19:54:30",
        "excerpt": "<p>单片机开可以用串口下载程序,这部分来了解一下。</p>\n",
        "capture": "单片机开可以用串口下载程序,这部分来了解一下。\n 一、CH340驱动\n 1. CH340简介\n一般来说我们通过电脑连接到开发板的串口是用的RS232:\n&lt;img src=\"./LV030-串口下载/img/image-20220918134419265.png\" alt=\"image-20220918134419265\" style=\"zoom: 50%;\" /\n而RS-232 电平需要 DB9 接口 (也就是常说的 COM口)。现在的电脑很多都没有 DB9 接口了,取而代之的是 USB 接口,所以就催生出了很多 USB 转串口 TTL 芯片,比如 CH340、PL2303 等。通过这些"
      },
      {
        "url": "/sdoc/dev-tool/burn-and-debug/126b08b9cb90276fafba387f.html",
        "relativePath": "/sdoc/01-开发工具/10-下载与调试/LV020-ST-LINK-Utility简介.html",
        "frontmatter": {
          "title": "LV020-ST-LINK-Utility简介",
          "date": "2025-09-17 19:46:40",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/dev-tool/burn-and-debug/126b08b9cb90276fafba387f",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "fafba387f5f84aab849e4d8b464e22ad",
            "useduuid": "fafba387f"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV020-ST-LINK-Utility简介",
        "date": "2025-09-17 19:46:40",
        "excerpt": "",
        "capture": "一、简介\n我们有源码的时候可以使用MDK编译,然后一键下载,那我们要是没有源码怎么办?用串口吗?当然可以,还有别的办法吗?有啊,下边我们就来了解一下吧。\nSTM32 ST-LINK Utility这个软件工具其实主要就是配套“ST-LINK”这个下载工具一起使用的上位机软件。因此使用STM32 ST-LINK Utility上位机软件需要有一个ST-LINK工具才行。它的功能和J-Link对应的工具类似,用于烧写代码。\nSTM32 ST-LINK Utility工具在产品开发过程中测试一些其他版本的代码,可以直接下载hex,而不用打开工程再编译去下载。 当开发完一个STM32产品,需要量产的时"
      },
      {
        "url": "/sdoc/dev-tool/burn-and-debug/126b08b9c98b11187c20e13a.html",
        "relativePath": "/sdoc/01-开发工具/10-下载与调试/LV015-STLink怎么使用.html",
        "frontmatter": {
          "title": "LV015-STLink怎么使用",
          "date": "2025-09-17 19:41:23",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/dev-tool/burn-and-debug/126b08b9c98b11187c20e13a",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "87c20e13a48a44dfb380f22a1b102e34",
            "useduuid": "87c20e13a"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV015-STLink怎么使用",
        "date": "2025-09-17 19:41:23",
        "excerpt": "",
        "capture": "我这有一款ST-Link,这个是10脚的,引脚图直接画在正面了,如下图所示,按照排线的孔插入对应底座就可以啦。\n&lt;img src=\"./LV015-STLink怎么使用/img/image-20230422161832141.png\" alt=\"image-20230422161832141\" style=\"zoom: 50%;\" /\n 一、驱动安装\n 1. 驱动下载\n我们到官网去下载一个:STSW-LINK009 - 为Windows 7、Windows 8、Windows 10签署的ST-LINK、ST-LINK/V2、ST-LINK/V2-1 USB驱动 - 意法半导体STMicr"
      },
      {
        "url": "/sdoc/dev-tool/burn-and-debug/126b08b7f6ce25a6c770f3b5.html",
        "relativePath": "/sdoc/01-开发工具/10-下载与调试/LV010-JFlash简介.html",
        "frontmatter": {
          "title": "LV010-JFlash简介",
          "date": "2025-09-17 07:46:38",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/dev-tool/burn-and-debug/126b08b7f6ce25a6c770f3b5",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "6c770f3b50d84d7fad7f77bc05f872fc",
            "useduuid": "6c770f3b5"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV010-JFlash简介",
        "date": "2025-09-17 07:46:38",
        "excerpt": "",
        "capture": "一、JFlash简介\n我们有源码的时候可以使用MDK编译,然后一键下载,那我们要是没有源码怎么办?用串口吗?当然可以,还有别的办法吗?有啊,下边我们就来了解一下吧。\nJ-Flash 是单独的Flash ISP烧写软件,是一种独立Flash编程软件了,可以把单独的bin文件或者hex文件烧写到单片机的flash里面去。它是在安装 J-Link 驱动时自带的一款Flash ISP软件,支持bin格式、hex格式、srec格式(Motorola的)。\n 二、安装jFlash\n这个软件一般是随着J-Link驱动安装一起自动安装的,所以在我们安装好J-Link驱动的时候,这个软件就已经被安装好了,没有必"
      },
      {
        "url": "/sdoc/dev-tool/burn-and-debug/126b08ab16fa3e011692369d.html",
        "relativePath": "/sdoc/01-开发工具/10-下载与调试/LV001-下载与调试概述.html",
        "frontmatter": {
          "title": "LV001-下载与调试概述",
          "date": "2025-09-16 23:09:06",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/dev-tool/burn-and-debug/126b08ab16fa3e011692369d",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "11692369dc744332bc6f2569dd8ec58a",
            "useduuid": "11692369d"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV001-下载与调试概述",
        "date": "2025-09-16 23:09:06",
        "excerpt": "",
        "capture": "一、概述\nSTM32 常见的下载方式有三种:  \n| 下载方式 | 使用接口                 | 下载条件                                             | 优缺点                                                       |\n| -------------------------------------------------------- | ------------------------ | --------------------------------------------"
      },
      {
        "url": "/sdoc/dev-tool/burn-and-debug/126b08ab15ee0921c4f7fd64.html",
        "relativePath": "/sdoc/01-开发工具/10-下载与调试/LV002-JLink怎么使用.html",
        "frontmatter": {
          "title": "LV002-JLink怎么使用",
          "date": "2025-09-16 23:06:38",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/dev-tool/burn-and-debug/126b08ab15ee0921c4f7fd64",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "1c4f7fd64909407cb589ad3348a0c376",
            "useduuid": "1c4f7fd64"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV002-JLink怎么使用",
        "date": "2025-09-16 23:06:38",
        "excerpt": "",
        "capture": "一、驱动安装\n 1. 在哪里下载?\n我们到官网去下载一个:SEGGER - The Embedded Experts - Downloads - J-Link / J-Trace,可以选一个版本使用,我这里选的V7.86h,后我们可得到一个JLink_Windows_V786h_x86_64.exe可执行文件。\n&lt;img src=\"./LV002-JLink怎么使用/img/image-20230424172108179.png\" alt=\"image-20230424172108179\" style=\"zoom: 67%;\" /\n 2. 安装驱动\n这个由于我之前安装过,这里就不记录未安"
      },
      {
        "url": "/sdoc/dev-tool/stm32cube/126b08aaf7c11b6e19f8d60a.html",
        "relativePath": "/sdoc/01-开发工具/02-STM32Cube/LV002-STM32CubeMX工程创建.html",
        "frontmatter": {
          "title": "LV002-STM32CubeMX工程创建",
          "date": "2025-09-16 22:29:13",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/dev-tool/stm32cube/126b08aaf7c11b6e19f8d60a",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "e19f8d60a0f64d51a22bc5a8a04bf26f",
            "useduuid": "e19f8d60a"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV002-STM32CubeMX工程创建",
        "date": "2025-09-16 22:29:13",
        "excerpt": "",
        "capture": "一、工程创建\n 1. 芯片型号选择\n这个创建工程就比较简单了:\n- 【File】&rarr;【New Project】\n&lt;img src=\"./LV002-STM32CubeMX工程创建/img/image-20230419232250397.png\" alt=\"image-20230419232250397\"  /\n- 【选择芯片型号】&rarr;【Start Project】\n&lt;img src=\"./LV002-STM32CubeMX工程创建/img/image-20230419232522160.png\" alt=\"image-20230419232522160\"  /&gt"
      },
      {
        "url": "/sdoc/dev-tool/keil/126b08aa5e32382c0ab32a01.html",
        "relativePath": "/sdoc/01-开发工具/01-keil/LV002-工程创建.html",
        "frontmatter": {
          "title": "LV002-工程创建",
          "date": "2025-09-16 18:36:02",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/dev-tool/keil/126b08aa5e32382c0ab32a01",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "c0ab32a01a744756b6c0c3e4231ed9aa",
            "useduuid": "c0ab32a01"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV002-工程创建",
        "date": "2025-09-16 18:36:02",
        "excerpt": "<p>接下来就是工程创建啦。</p>\n",
        "capture": "接下来就是工程创建啦。\n 一、库文件\n在STM32的开发中,ST(意法半导体)提供了多种软件库来帮助开发者简化开发流程,提高开发效率。其中,标准外设库(Standard Peripheral Library, SPL) 和 硬件抽象层库(Hardware Abstraction Layer Library, HAL) 是最为经典和常用的两种。\n 1. 标准外设库 (Standard Peripheral Library, SPL)\n标准库,也称为SPL,是ST早期为STM32F1, F2, F4, L1等系列提供的库函数。它是对STM32芯片底层寄存器操作的一种封装,提供了一组C语言API用于"
      },
      {
        "url": "/sdoc/dev-tool/stm32cube/126b08aa58bc0838d250f7bd.html",
        "relativePath": "/sdoc/01-开发工具/02-STM32Cube/LV001-STM32CubeMX简介.html",
        "frontmatter": {
          "title": "LV001-STM32CubeMX简介",
          "date": "2025-09-16 18:22:04",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/dev-tool/stm32cube/126b08aa58bc0838d250f7bd",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "8d250f7bdb9d4b4fb822b135635cdf20",
            "useduuid": "8d250f7bd"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV001-STM32CubeMX简介",
        "date": "2025-09-16 18:22:04",
        "excerpt": "",
        "capture": "一、STM32CubeMX\n 1. 简介\n&lt;img src=\"./LV001-STM32CubeMX简介/img/image-20230419230755825.png\" alt=\"image-20230419230755825\" style=\"zoom:50%;\" /\nSTM32CubeMX是ST公司出品的一款C代码生成器软件,它是一种图形工具,通过分步过程可以非常轻松地配置STM32微控制器和微处理器,以及为Arm® Cortex®-M内核或面向Arm® Cortex®-A内核的特定Linux®设备树生成相应的初始化C代码。具有以下功能:\n- 直观的STM32微控制器和微处理器选择\n"
      },
      {
        "url": "/sdoc/dev-tool/keil/126b08a8b79e2ecaa634dd81.html",
        "relativePath": "/sdoc/01-开发工具/01-keil/LV001-keil简介.html",
        "frontmatter": {
          "title": "LV001-keil简介",
          "date": "2025-09-16 07:54:22",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/dev-tool/keil/126b08a8b79e2ecaa634dd81",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "aa634dd813594b2686f1ae7b5b6911d4",
            "useduuid": "aa634dd81"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV001-keil简介",
        "date": "2025-09-16 07:54:22",
        "excerpt": "",
        "capture": "一、Keil简介\n 1. 简介\nMDK 源自德国的 KEIL 公司,是 RealView MDK 的简称。在全球 MDK 被超过 10 万的嵌入式开发工程师使用。是目前针对 ARM 处理器,尤其是 Cortex M 内核处理器的最佳开发工具。  \nKeil MDK面向各种STM32微控制器产品的全面软件开发解决方案,提供创建、编译和调试嵌入式应用程序时所需的一切资源。MDK包括真正的Arm编译器和易于使用的Keil uVision IDE/调试器,可与STM32CubeMX和软件包连接。MDK还提供各种专业的中间件组件。\nMDK5 向后兼容 MDK4 和 MDK3 等,以前的项目同样可以在 M"
      }
    ],
    "sortPostsByDate": [
      {
        "url": "/sdoc/basic/stm32flash/126b0e4540061175c7584cc2.html",
        "relativePath": "/sdoc/10-基础篇/50-STM32内部FLASH/LV025-IAP编程实现.html",
        "frontmatter": {
          "title": "LV025-IAP编程实现",
          "date": "2025-10-10 22:00:38",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/basic/stm32flash/126b0e4540061175c7584cc2",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "5c7584cc23ea451aaa122d51f3053c7c",
            "useduuid": "5c7584cc2"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV025-IAP编程实现",
        "date": "2025-10-10 22:00:38",
        "excerpt": "",
        "capture": "一、APP应用程序制作\nSTM32 的 APP 程序不仅可以放到 FLASH 里面运行,也可以放到 SRAM 里面运行,  我们使用的STM32F103ZET6有512KB的FLASH和64KB的SRAM,FLASH的地址为 0x0800 0000 \\~ 0x0807 FFFF,内部SRAM的地址为 0x2000 0000 \\~ 0x2000 FFFF。\n 1.APP起始地址设置\n 1.1 FLASH中运行\n- 【Options for Target】&rarr;【Target】\n&lt;img src=\"./LV025-IAP编程实现/img/image-20220925122206196."
      },
      {
        "url": "/sdoc/basic/stm32flash/126b0e26745a3124f27972bd.html",
        "relativePath": "/sdoc/10-基础篇/50-STM32内部FLASH/LV020-IAP编程简介.html",
        "frontmatter": {
          "title": "LV020-IAP编程简介",
          "date": "2025-10-08 20:18:18",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/basic/stm32flash/126b0e26745a3124f27972bd",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "4f27972bd3fc4860b4605d3ba9d93bb7",
            "useduuid": "4f27972bd"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV020-IAP编程简介",
        "date": "2025-10-08 20:18:18",
        "excerpt": "",
        "capture": "一、STM32编程方式\n 1. 在线编程\n 1.1 基本概念\nICP,全称为In-Circuit Programming,即在线编程。是通过 JTAG或者SWD 协议或者系统加载程序(Bootloader)下载用户应用程序到微控制器中。这种方式就是我们平时用的下载程序方式,就是通过JTAG下载器将我们通过Keil生成的hex文件下载到STM32开发板中。\n注意:这里我也不知道教程为什么叫这个,前边学习启动方式的时候也有提到过,它其实也可以称为 In System Program,也就是ISP,主要依靠ST官方在芯片内固化的BootLoader来接收来自串口的程序。\n 1.2 下载流程\n从串口下"
      },
      {
        "url": "/sdoc/basic/stm32memory/126b0e24d5e326e3a7296e85.html",
        "relativePath": "/sdoc/10-基础篇/60-STM32的内存/LV010-内存管理.html",
        "frontmatter": {
          "title": "LV010-内存管理",
          "date": "2025-10-08 09:57:15",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/basic/stm32memory/126b0e24d5e326e3a7296e85",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "3a7296e85ae54af393dd0790947698ce",
            "useduuid": "3a7296e85"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV010-内存管理",
        "date": "2025-10-08 09:57:15",
        "excerpt": "",
        "capture": "我们学习了使用 STM32F1 驱动外部 SRAM,以扩展 STM32F1 的内存,加上STM32F1 本身自带的 64K 字节内存,我们可供使用的内存还是比较多的。如果我们所用的内存都像上一节的 testsram 那样,定义一个数组来使用,显然不是一个好办法。后来在使用Flash做Bootloader实验的时候,就无法在原有工程中定义一个55KB的数组,然后 lcd做字模缩放的时候,数组也是预先定义好的,直接就16KB,再加上一些其他的,STM32内部Flash一共就64KB,直接被我占满,sct文件中定义了SRAM的长度,导致编译都无法通过,所以动态的去管理内存就很有必要了。\n &lt;f"
      },
      {
        "url": "/docs/126b096ee4d10f3bb564b607.html",
        "relativePath": "/sdoc/30-进阶篇/90-FreeRTOS/01-FreeRTOS简介/LV001-FreeRTOS简介.html",
        "frontmatter": {
          "title": "LV001-FreeRTOS简介",
          "date": "2025-09-29 06:31:21",
          "icon": "famicons:logo-markdown",
          "permalink": "/docs/126b096ee4d10f3bb564b607",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "bb564b607089439882d4247b57282de9",
            "useduuid": "bb564b607"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV001-FreeRTOS简介",
        "date": "2025-09-29 06:31:21",
        "excerpt": "",
        "capture": "一、RTOS简介\n一般嵌入式系统分为两种:前后台系统和实时系统。\n 1. 前后台系统\n早期嵌入式开发没有嵌入式操作系统的概念,直接操作裸机,在裸机上写程序,直接一个while大循环,在循环中实现功能。通常把程序分为两部分:前台系统 和 后台系统。\n简单的小系统通常是前后台系统,这样的程序包括一个死循环和若干个中断服务程序:应用程序是一个无限循环,循环中调用API函数完成所需的操作,这个大循环就叫做后台系统。中断服务程序用于处理系统的异步事件,也就是前台系统。前台是中断级,后台是任务级。\n 2. 实时系统?\n&gt; 参考:《嵌入式实时操作系统RT-Thread设计与实现》 提取码: rpxn "
      },
      {
        "url": "/sdoc/advanced-chapter/display/lcd/126b09525e7116330989fbcc.html",
        "relativePath": "/sdoc/30-进阶篇/04-显示屏/02-LCD/LV040-实现任意大小字模.html",
        "frontmatter": {
          "title": "LV040-实现任意大小字模",
          "date": "2025-09-27 19:37:13",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/advanced-chapter/display/lcd/126b09525e7116330989fbcc",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "30989fbcc8354f6baad6455294de0120",
            "useduuid": "30989fbcc"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV040-实现任意大小字模",
        "date": "2025-09-27 19:37:13",
        "excerpt": "",
        "capture": "我们要是想显示不同大小的字符怎么办?重新生成不同大小的字模?这当然是可以的啦,但是吧,要是需要的大小有很多怎么办,比如说我们需要16x16的,32x32的,64x64的,......,这样的话,都生成数组,然后放在文件里嘛,中文也都做成字库嘛?这样其实是可以的,只要内存足够就行,但是这样其实是很浪费资源的,它们的字模都是一样的,但是仅仅就是大小不同,我们就不能用一张表,然后对字体进行缩放,得到其他大小的字模嘛?当然可以啦,下边就来学习一下这个字模缩放的流程啦。\n注意后边主要是以英文字模的缩放为例,来说明缩放的原理,我们使用的字模大小为宽16高16,对应到英文的话,就是宽8高16啦。\n 一、基本"
      },
      {
        "url": "/sdoc/advanced-chapter/display/lcd/126b0952576b3df0941e36ed.html",
        "relativePath": "/sdoc/30-进阶篇/04-显示屏/02-LCD/LV035-中英文的显示.html",
        "frontmatter": {
          "title": "LV035-中英文的显示",
          "date": "2025-09-27 19:19:15",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/advanced-chapter/display/lcd/126b0952576b3df0941e36ed",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "0941e36ed35b4da7a71acace5c8d2e0d",
            "useduuid": "0941e36ed"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV035-中英文的显示",
        "date": "2025-09-27 19:19:15",
        "excerpt": "",
        "capture": "一、字模\n 1. 什么是字模?\n前边我们已经了解了字符的编码,有了编码,我们就能在计算机中处理、存储字符了,但是如果计算机处理完字符后直接以编码的形式输出,人类将难以识别。因此计算机与人交互时,一般会把字符转化成人类习惯的表现形式进行输出,如显示、打印的时候。\n但是如果仅有字符编码,计算机还不知道该如何表达该字符,因为字符实际上是一个个独特的图形,计算机必须把字符编码转化成对应的字符图形人类才能正常识别,因此我们要给计算机提供字符的图形数据,这些数据就是字模,多个字模数据组成的文件也被称为字库。计算机显示字符时,根据字符编码与字模数据的映射关系找到它相应的字模数据,液晶屏根据字模数据显示该字符"
      },
      {
        "url": "/sdoc/advanced-chapter/display/lcd/126b095255800a53f67e99cc.html",
        "relativePath": "/sdoc/30-进阶篇/04-显示屏/02-LCD/LV030-字符编码简介.html",
        "frontmatter": {
          "title": "LV030-字符编码基础",
          "date": "2025-09-27 19:14:24",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/advanced-chapter/display/lcd/126b095255800a53f67e99cc",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "3f67e99cc1774328be76eff3ae429948",
            "useduuid": "3f67e99cc"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV030-字符编码基础",
        "date": "2025-09-27 19:14:24",
        "excerpt": "",
        "capture": "一、字符编码概述\n在计算机上,我们看到的字符“ A”可能长这样 :\n&lt;img src=\"./LV030-字符编码简介/img/image-20230525215626795.png\" alt=\"image-20230525215626795\" style=\"zoom:50%;\" /\n对于同一个 TXT 文件中的内容,我们在 Notepad++ 上选择不同字体时,字符显示的形状也可能不一样。  所以 TXT 文件中保存的是字符的核心:它的编码值。而 Notepad++ 上显示时,这些字符对应什么样的形状态,这是由字符文件决定的。\n编码值,字体是两个不一样的东西,比如 A 的编码值是 0x4"
      },
      {
        "url": "/sdoc/advanced-chapter/display/lcd/126b095253d9037570d31d42.html",
        "relativePath": "/sdoc/30-进阶篇/04-显示屏/02-LCD/LV025-LCD显示实例.html",
        "frontmatter": {
          "title": "LV025-LCD显示实例",
          "date": "2025-09-27 19:10:01",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/advanced-chapter/display/lcd/126b095253d9037570d31d42",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "570d31d42d894e208a1fb9d5c484e257",
            "useduuid": "570d31d42"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV025-LCD显示实例",
        "date": "2025-09-27 19:10:01",
        "excerpt": "",
        "capture": "这一节的笔记主要是LCD显示相关,不关注触摸屏相关引脚。\n 一、硬件原理图\n 1. 正点原子2.8寸LCD模块\n&lt;img src=\"./LV025-LCD显示实例/img/image-20230520165852112.png\" alt=\"image-20230520165852112\" style=\"zoom:50%;\" /\n上图是正点原子的2.8寸LCD模块的原理图,说真的,没看懂,不明白为什么模块原理图上跳过了D8和D9两根线,并且标号对应的时候要D0对应DB1这样子。这个图给我看自闭了,反正是没看懂,而且教程也没见说为什么这样。索性不看了,目前就看几个关键的引脚,这几个关键的引脚"
      },
      {
        "url": "/sdoc/advanced-chapter/display/lcd/126b09523c371707f0bd772f.html",
        "relativePath": "/sdoc/30-进阶篇/04-显示屏/02-LCD/LV020-FSMC模拟8080时序.html",
        "frontmatter": {
          "title": "LV020-FSMC模拟8080时序",
          "date": "2025-09-27 18:49:51",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/advanced-chapter/display/lcd/126b09523c371707f0bd772f",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "7f0bd772fcbd424ab2f5aaf94abf65ff",
            "useduuid": "7f0bd772f"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV020-FSMC模拟8080时序",
        "date": "2025-09-27 18:49:51",
        "excerpt": "",
        "capture": "一、FSMC简介\n\n 1. 简介\nILI9341的8080通讯接口时序可以由STM32使用普通I/O接口进行模拟,但这样效率太低,STM32提供了一种特别的控制方法——使用FSMC接口实现8080时序。\n&lt;img src=\"./LV020-FSMC模拟8080时序/img/image-20230519221727962.png\" alt=\"image-20230519221727962\" style=\"zoom:50%;\" /&gt;\n我们前边学习SRAM的时候了解到STM32的FSMC外设可以用于控制扩展的外部存储器,而MCU对液晶屏的操作实际上就是把显示数据写入到显存中,与控制存储器"
      },
      {
        "url": "/sdoc/advanced-chapter/display/lcd/126b095238ef12080fa9e2fc.html",
        "relativePath": "/sdoc/30-进阶篇/04-显示屏/02-LCD/LV016-IL9341简介.html",
        "frontmatter": {
          "title": "LV016-IL9341简介",
          "date": "2025-09-27 18:41:11",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/advanced-chapter/display/lcd/126b095238ef12080fa9e2fc",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "80fa9e2fc1c846ac9bfafe695ffc6b7d",
            "useduuid": "80fa9e2fc"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV016-IL9341简介",
        "date": "2025-09-27 18:41:11",
        "excerpt": "",
        "capture": "一、简介\nILI9341是奕力科技股份有限公司 (ilitek.com)的一款小尺寸驱动IC,我在官网没看到芯片手册,但是有些查datasheet的地方是可以查到的,这里就不写链接了。我在本地保存了一份:01ILI9341_DS.pdf\n它是一个支持分辨率为240x320点阵的a-TFT LCD 的262144(26万色)色单片驱动器。这个单片驱动器包含了一个720通道的源极驱动器(source driver),一个320通道的栅极驱动器(gate driver),自带一个172800字节(320x240x18/8)的GRAM用于显示240x320分辨率的图片数据。ILI9341提供8位/9位"
      },
      {
        "url": "/sdoc/advanced-chapter/display/lcd/126b095237661ce983ad47b1.html",
        "relativePath": "/sdoc/30-进阶篇/04-显示屏/02-LCD/LV015-ATK-MD0280模块.html",
        "frontmatter": {
          "title": "LV015-ATK-MD0280模块",
          "date": "2025-09-27 18:37:18",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/advanced-chapter/display/lcd/126b095237661ce983ad47b1",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "983ad47b1ccb49c59396418e90556b0c",
            "useduuid": "983ad47b1"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV015-ATK-MD0280模块",
        "date": "2025-09-27 18:37:18",
        "excerpt": "",
        "capture": "一、相关资料\n这一部分主要看一下我们有哪些资料可以看,注意这里的资料都是放在本地的笔记对应的文件夹中:\n- ATK-MD0280模块用户手册:正点原子ATK-MD0280模块用户手册.pdf\n- ATK-MD0280模块裸屏图:00ATK-MD0280裸屏尺寸图(钢化玻璃TP).pdf\n- ILI9341芯片手册:01ILI9341_DS.pdf\n- 触摸驱动芯片手册:04XPT2046.pdf\n 二、2.8寸LCD模块\n我使用的是正点原子的2.8寸LCD模块,后边也是以这个模块进行学习。\n 1. 屏幕简介\nATK-MD0280-V2.4(V2.4 是版本号,下面均以 ATK-MD0280 表"
      },
      {
        "url": "/sdoc/advanced-chapter/display/lcd/126b0951760b03320ea5c5be.html",
        "relativePath": "/sdoc/30-进阶篇/04-显示屏/02-LCD/LV010-液晶控制原理.html",
        "frontmatter": {
          "title": "LV010-液晶控制原理",
          "date": "2025-09-27 13:42:19",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/advanced-chapter/display/lcd/126b0951760b03320ea5c5be",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "20ea5c5be93445288eac3b57c2e84f66",
            "useduuid": "20ea5c5be"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV010-液晶控制原理",
        "date": "2025-09-27 13:42:19",
        "excerpt": "",
        "capture": "一、显示屏的组成\n下图是两种适合于STM32芯片使用的显示屏,我们以它为例讲解控制液晶屏的基本原理。\n&lt;img src=\"./LV010-液晶控制原理/img/LCD007.jpeg\" alt=\"适合STM32控制的显示屏实物图\" style=\"zoom: 33%;\" /\n这个完整的显示屏由液晶显示面板、电容触摸面板以及PCB底板构成。图中的触摸面板带有触摸控制芯片,该芯片处理触摸信号并通过引出的信号线与外部器件通讯, 触摸面板中间是透明的,它贴在液晶面板上面,一起构成屏幕的主体,触摸面板与液晶面板引出的排线连接到PCB底板上,根据实际需要, PCB底板上可能会带有“液晶控制器芯片”,图"
      },
      {
        "url": "/sdoc/advanced-chapter/display/lcd/126b0951740b3b3a3f69973e.html",
        "relativePath": "/sdoc/30-进阶篇/04-显示屏/02-LCD/LV001-LCD简介.html",
        "frontmatter": {
          "title": "LV001-LCD简介",
          "date": "2025-09-27 13:37:07",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/advanced-chapter/display/lcd/126b0951740b3b3a3f69973e",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "a3f69973ef4142428240aba5719aeeb0",
            "useduuid": "a3f69973e"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV001-LCD简介",
        "date": "2025-09-27 13:37:07",
        "excerpt": "",
        "capture": "一、显示屏基础\n显示器属于计算机的I/O设备,即输入输出设备。它是一种将特定电子信息输出到屏幕上再反射到人眼的显示工具。常见的有CRT显示器、液晶显示器、LED点阵显示器及OLED显示器。从第一个显示装置发明至今,已经快有百年历史。 在显示屏的发展中,依次出现了三大显示技术: CRT、LCD、 OLED,如图所示。  \n&lt;img src=\"./LV001-LCD简介/img/image-20230503183212724.png\" alt=\"image-20230503183212724\" style=\"zoom:50%;\" /\n 1. CRT显示屏\n1897年, 德国电气工程师、 发明"
      },
      {
        "url": "/sdoc/advanced-chapter/display/oled/126b09517279099247b327e5.html",
        "relativePath": "/sdoc/30-进阶篇/04-显示屏/01-OLED/LV010-8080时序驱动OLED.html",
        "frontmatter": {
          "title": "LV010-8080时序驱动OLED",
          "date": "2025-09-27 13:33:05",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/advanced-chapter/display/oled/126b09517279099247b327e5",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "247b327e5f1747919749deb8038e066d",
            "useduuid": "247b327e5"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV010-8080时序驱动OLED",
        "date": "2025-09-27 13:33:05",
        "excerpt": "",
        "capture": "本节笔记放在这里,主要是为了学习8080时序,为后边FSMC产生8080时序做铺垫,这一部分的笔记是用GPIO模拟8080时序,这样对8080时序的认识会更深刻一些。由于我没有8080并口的OLED模块,所以还是以正点原子的OLED模块来进行时序的模拟。\n 一、硬件原理图\n&lt;img src=\"./LV010-8080时序驱动OLED/img/image-20230516234228390.png\" alt=\"image-20230516234228390\" style=\"zoom:50%;\" /\n(1)CS: OLED 片选信号,对应 PD6。\n(2)WR:向 OLED 写入数据,对应 "
      },
      {
        "url": "/sdoc/advanced-chapter/display/oled/126b09516d6c2a948085516b.html",
        "relativePath": "/sdoc/30-进阶篇/04-显示屏/01-OLED/LV001-OLED简介.html",
        "frontmatter": {
          "title": "LV001-OLED简介",
          "date": "2025-09-27 13:20:12",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/advanced-chapter/display/oled/126b09516d6c2a948085516b",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "48085516b89044b2a637057cfaac3f5c",
            "useduuid": "48085516b"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV001-OLED简介",
        "date": "2025-09-27 13:20:12",
        "excerpt": "",
        "capture": "本节笔记放在这里,主要是为了学习8080时序,为后边FSMC产生8080时序做铺垫,这一部分的笔记是用GPIO模拟8080时序,这样对8080时序的认识会更深刻一些。这一节会涉及一些像素啊,显存啊什么的基本概念,笔记写在LCD屏幕学的相关笔记中了。平时我用的还是I2C或者SPI接口的OLED。\n 一、OLED简介\n 1. 简介\nOLED,即有机发光二极管(Organic Light-Emitting Diode),又称为有机电激光显示(Organic Electroluminesence Display, OELD)。OLED由于同时具备自发光,不需背光源、对比度高、厚度薄、视角广、反应速度快"
      },
      {
        "url": "/sdoc/advanced-chapter/ov7725/126b09516bd03c413cd356e8.html",
        "relativePath": "/sdoc/30-进阶篇/03-OV7725/LV020-OV7725简介.html",
        "frontmatter": {
          "title": "LV020-OV7725简介",
          "date": "2025-09-27 13:16:00",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/advanced-chapter/ov7725/126b09516bd03c413cd356e8",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "13cd356e84f447f3b52ee1a287368dce",
            "useduuid": "13cd356e8"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV020-OV7725简介",
        "date": "2025-09-27 13:16:00",
        "excerpt": "",
        "capture": "一、OV7725简介\n 1. CCD  Sensor与CMOS Sensor\n目前市场上采用的图像传感器(Sensor)主要有CCD与CMOS这两种。CCD Sensor的技术比较成熟,一致性较好,色彩还原逼真,在尺寸方面也有一定的优势,但是其工艺复杂、成本高、功耗大,像素提高难度大,技术遇到瓶颈。而CMOS Sensor制造工艺简单,成本相对较低,功耗小,开发简便,在现阶段有较大的发展空间。相关参数的对比如表所示。\n&lt;img src=\"./LV020-OV7725简介/img/image-20240114142822888.png\" alt=\"image-202401141428228"
      },
      {
        "url": "/sdoc/advanced-chapter/ov7725/126b09516b6c2fed98855250.html",
        "relativePath": "/sdoc/30-进阶篇/03-OV7725/LV010-SCCB协议简介.html",
        "frontmatter": {
          "title": "LV010-SCCB协议简介",
          "date": "2025-09-27 13:15:00",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/advanced-chapter/ov7725/126b09516b6c2fed98855250",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "d9885525026649bdb9a31be28b79a722",
            "useduuid": "d98855250"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV010-SCCB协议简介",
        "date": "2025-09-27 13:15:00",
        "excerpt": "",
        "capture": "一、SCCB是什么?\nSCCB(Serial Camera Control Bus,串行摄像头控制总线) 是 OmniVision 开发的一种总线协议, 且广泛被应用于 OV 系列图像传感器上。\nSCCB 协议与 IIC 协议十分相似, SCCB协议由两条信号线组成: SIO_C(类似 IIC 协议的 SCL) 和 SIO_D(类似 IIC 协议的 SDA)。与 IIC 协议一样, SCCB 协议也有起始信号和停止信号, 只不过与 IIC 协议不同的是, IIC协议在传输完 1 字节数据后,需要传输的接收方发送 1 比特的确认位,而 SCCB 协议一次性要传输 9 位数据, 前 8 位为读写的"
      },
      {
        "url": "/sdoc/advanced-chapter/ov7725/126b09516b08191a7bd0fd02.html",
        "relativePath": "/sdoc/30-进阶篇/03-OV7725/LV001-ATK-MC6625F模块简介.html",
        "frontmatter": {
          "title": "LV001-ATK-MC6625F模块简介",
          "date": "2025-09-27 13:14:00",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/advanced-chapter/ov7725/126b09516b08191a7bd0fd02",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "a7bd0fd0290345cfae6ad4ff74f043f7",
            "useduuid": "a7bd0fd02"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV001-ATK-MC6625F模块简介",
        "date": "2025-09-27 13:14:00",
        "excerpt": "",
        "capture": "一、ATK-MC6625F模块简介\nATK-MC7725F 模块一款高性能 30W 高清摄像头模块。 该模块采用 OmniVision 公司的 OV7725 摄像头传感器作为核心, OV7725 是一颗 1/4 英寸 CMOS VGA( 640*480)的图像传感器。 同时 ATK-MC7725F 模块集成了有源晶振和 FIFO 芯片, 这使得可以采用大部分的 MCU 控制该模块和读取图像数据。  \nATK-MC6625F 模块具有如下特点:\n- 集成有源晶振,无需外部提供时钟\n- 集成 FIFO 芯片,方便外部 MCU 读取图像\n- 支持 VGA、 QVGA 和从 CIF 到 40*30 的"
      },
      {
        "url": "/sdoc/peripheral/usb/126b095168b91d9fad5c2a07.html",
        "relativePath": "/sdoc/20-基本外设篇/60-USB/LV010-USB读卡器实例.html",
        "frontmatter": {
          "title": "LV010-USB读卡器实例",
          "date": "2025-09-27 13:08:09",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/usb/126b095168b91d9fad5c2a07",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "fad5c2a07ce14efe93e887b24a93fb47",
            "useduuid": "fad5c2a07"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV010-USB读卡器实例",
        "date": "2025-09-27 13:08:09",
        "excerpt": "",
        "capture": "一、实验说明\n学习 USB 时我们说过 USB 有很多的设备类,这一节的 USB 读卡器实际上是一个大容量存储设备(MSC: Mass Storage Class),本实验实现过程我们需要对 MSC 类实例化,即定义这个类可以操作的功能,上层应用通过 USBD_RegisterClass 函数,将此对象注册到 usbd 内核,它主要在 usbd_msc.c 源文件中实现它的各个成员函数。\n本实验中, STM32 作为设备连接到主机,我们需要使能 USB 外设,以便主机识别到 USB设备进行扫描,同时我们需要在软件上设计好 USB 枚举所需要的一些设备描述符和注册信息,配置对应的端点以用于 US"
      },
      {
        "url": "/sdoc/peripheral/usb/126b095167b12a8376012928.html",
        "relativePath": "/sdoc/20-基本外设篇/60-USB/LV001-USB简介.html",
        "frontmatter": {
          "title": "LV001-USB简介",
          "date": "2025-09-27 13:05:45",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/usb/126b095167b12a8376012928",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "3760129282bc45c68e9217915df4f46b",
            "useduuid": 376012928
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV001-USB简介",
        "date": "2025-09-27 13:05:45",
        "excerpt": "",
        "capture": "USB,即通用串行总线(Universal Serial Bus),包括 USB 协议和 USB 硬件两个方面,支持热插拔功能。现在日常生活的很多方面都离不开 USB 的应用,如充电和数据传输等场景。\nUSB 经过多次修改, 1996 年确定了初始规范版本 USB1.0,目前由非盈利组织 USBIF(Front Page | USB-IF)管理。 STM32 自带的 USB 符合USB2.0 规范,故 2.0 版本仍是学习的重点。  \n 一、USB简介\nUSB 本身的知识体系非常复杂,这里就简单介绍一下,想更系统地学习 USB 的知识可以参考《圈圈教你玩 USB》、塞普拉斯提供的《USB101"
      },
      {
        "url": "/sdoc/advanced-chapter/esp8266/126b095152fb04ead8380cb5.html",
        "relativePath": "/sdoc/30-进阶篇/02-ESP8266/LV020-ATK-MW8266模块使用实例.html",
        "frontmatter": {
          "title": "LV020-ATK-ESP8266使用实例",
          "date": "2025-09-27 12:52:43",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/advanced-chapter/esp8266/126b095152fb04ead8380cb5",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "ad8380cb587c446592ab6fa1ae7318fd",
            "useduuid": "ad8380cb5"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV020-ATK-ESP8266使用实例",
        "date": "2025-09-27 12:52:43",
        "excerpt": "",
        "capture": "一、硬件连接\nATK-MW8266D 模块可直接与正点原子战舰 STM32F103 开发板板载的 ATK 模块接口( ATK MODULE)进行连接,具体的连接关系,如下表所示:  \n&lt;img src=\"./LV020-ATK-MW8266模块使用实例/img/image-20240113094305951.png\" alt=\"image-20240113094305951\" style=\"zoom:50%;\" /\n注意,若要使用正点原子战舰 STM32F103 开发板的 ATK MODULE 接口连接ATK-MW8266D 模块,需要用跳线帽将开发板板载的 P8 接线端子的 PB10("
      },
      {
        "url": "/sdoc/advanced-chapter/esp8266/126b0951520814de18399844.html",
        "relativePath": "/sdoc/30-进阶篇/02-ESP8266/LV015-ESP8266固件烧录.html",
        "frontmatter": {
          "title": "LV015-ESP8266固件烧录",
          "date": "2025-09-27 12:50:00",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/advanced-chapter/esp8266/126b0951520814de18399844",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "e18399844bf344e3bb81cdc33db73395",
            "useduuid": "e18399844"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV015-ESP8266固件烧录",
        "date": "2025-09-27 12:50:00",
        "excerpt": "",
        "capture": "这里主要是学习esp8266_start_guide_1_.pdf (ai-thinker.com)这篇文档,这是安信可提供的一个ESSP8266的入门教程。这节用的图都是安信可官方的模块,我没有实际买,这里只是做个笔记学习用。\n 一、接线与模式\n 1. 典型接线图\n这里以ESP01为例:\n&lt;img src=\"./LV015-ESP8266固件烧录/img/image-20240112192441073.png\" alt=\"image-20240112192441073\" style=\"zoom:50%;\" /\n 2. 启动模式\n一般来讲是这样的:\n&lt;img src=\"./LV01"
      },
      {
        "url": "/sdoc/advanced-chapter/esp8266/126b095151472d621a6605a9.html",
        "relativePath": "/sdoc/30-进阶篇/02-ESP8266/LV010-AT指令.html",
        "frontmatter": {
          "title": "LV010-AT指令",
          "date": "2025-09-27 12:48:07",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/advanced-chapter/esp8266/126b095151472d621a6605a9",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "21a6605a91b34e7b87e3081f66267021",
            "useduuid": "21a6605a9"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV010-AT指令",
        "date": "2025-09-27 12:48:07",
        "excerpt": "",
        "capture": "一、ESSP-AT是什么?\nESP-AT 是乐鑫开发的可直接用于量产的物联网应用固件,旨在降低客户开发成本,快速形成产品。通过 ESP-AT 指令,您可以快速加入无线网络、连接云平台、实现数据通信以及远程控制等功能,真正的通过无线通讯实现万物互联。\nESP-AT 是基于 ESP-IDF 或 ESP8266_RTOS_SDK 实现的软件工程。它使 ESP 模组作为从机,MCU 作为主机。MCU 发送 AT 命令给 ESP 模组,控制 ESP 模组执行不同的操作,并接收 ESP 模组返回的 AT 响应。ESP-AT 提供了大量功能不同的 AT 命令,如 Wi-Fi 命令、TCP/IP 命令、Blu"
      },
      {
        "url": "/sdoc/advanced-chapter/esp8266/126b0951502d346ca9aa7929.html",
        "relativePath": "/sdoc/30-进阶篇/02-ESP8266/LV001-ESP8266模块简介.html",
        "frontmatter": {
          "title": "LV001-ESP8266模块简介",
          "date": "2025-09-27 12:45:25",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/advanced-chapter/esp8266/126b0951502d346ca9aa7929",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "ca9aa79298244701abe40ba6e8a3afb0",
            "useduuid": "ca9aa7929"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV001-ESP8266模块简介",
        "date": "2025-09-27 12:45:25",
        "excerpt": "",
        "capture": "这一节开始,我们来学习一下正点原子的ESP8266模块。\n 一、ESP8266?\n 1. ESP8266是什么?\nESP8266其实是由乐鑫公司推出的一款WIFI芯片,而国内的一些物联网公司基于乐鑫的ESP8266芯片开发出了许多WIFI模块,这些WIFI模块大多以ESP8266作为前缀命名,因此我们通常用ESP8266指ESP8266WIFI模块。\n&lt;img src=\"./LV001-ESP8266模块简介/img/image-20240108220855988.png\" alt=\"image-20240108220855988\" /\n平常使用较多的ESP8266WIFI模块是国内安信"
      },
      {
        "url": "/sdoc/basic/stm32pwr/126b095140443bc89b1ebe84.html",
        "relativePath": "/sdoc/10-基础篇/70-STM32电源管理/LV010-三种模式实现.html",
        "frontmatter": {
          "title": "LV010-三种模式实现",
          "date": "2025-09-27 12:04:52",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/basic/stm32pwr/126b095140443bc89b1ebe84",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "89b1ebe841074780aa0a2abaac3caa24",
            "useduuid": "89b1ebe84"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV010-三种模式实现",
        "date": "2025-09-27 12:04:52",
        "excerpt": "",
        "capture": "一、通用配置\n 1. 硬件原理图\n硬件主要使用到了按键、 LED 以及使用串口输出调试信息。 \n&lt;img src=\"./LV010-三种模式实现/img/image-20230610191800976.png\" alt=\"image-20230610191800976\" style=\"zoom: 33%;\" /\n 2. STM32CubeMX配置\n 2.1 时钟树\n&lt;img src=\"./LV010-三种模式实现/img/image-20230610191131427.png\" alt=\"image-20230610191131427\" style=\"zoom: 25%;\" /&g"
      },
      {
        "url": "/sdoc/basic/stm32pwr/126b09513f17393c50358806.html",
        "relativePath": "/sdoc/10-基础篇/70-STM32电源管理/LV001-电源管理简介.html",
        "frontmatter": {
          "title": "LV001-电源管理简介",
          "date": "2025-09-27 12:01:51",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/basic/stm32pwr/126b09513f17393c50358806",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "c503588060cf485a965221f48977e91d",
            "useduuid": "c50358806"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV001-电源管理简介",
        "date": "2025-09-27 12:01:51",
        "excerpt": "",
        "capture": "一、STM32电源管理\n 1. 电源管理简介\n电源对电子设备的重要性不言而喻,它是保证系统稳定运行的基础,而保证系统能稳定运行后,又有低功耗的要求。\n在很多应用场合中都对电子设备的功耗要求非常苛刻,如某些传感器信息采集设备,仅靠小型的电池提供电源,要求工作长达数年之久,且期间不需要任何维护;由于智慧穿戴设备的小型化要求,电池体积不能太大导致容量也比较小,所以也很有必要从控制功耗入手,提高设备的续行时间。\n因此, STM32 有专门的电源管理外设监控电源并管理设备的运行模式,确保系统正常运行,并尽量降低器件的功耗。  \n 2. 电源系统结构\n为了方便进行电源管理, STM32把它的外设、内核等模"
      },
      {
        "url": "/sdoc/peripheral/rtc/126b09511eac35920a3f191c.html",
        "relativePath": "/sdoc/20-基本外设篇/55-RTC时钟/LV001-RTC简介.html",
        "frontmatter": {
          "title": "LV001-RTC简介",
          "date": "2025-09-27 11:18:52",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/rtc/126b09511eac35920a3f191c",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "20a3f191c6054d8d9f5fd53ff7b809de",
            "useduuid": "20a3f191c"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV001-RTC简介",
        "date": "2025-09-27 11:18:52",
        "excerpt": "",
        "capture": "一、RTC简介\n实时时钟( Real Time Clock, RTC), 是一个可以不使用系统主电源供电的定时器。在系统主电源断开的情况下,依靠纽扣电池供电继续计时,可以维持几个月到几年的持续工作。在系统恢复主电源工作时, 为系统提供日历、时间信息。\n&lt;img src=\"./LV001-RTC简介/img/image-20230611142452003.png\" alt=\"image-20230611142452003\" style=\"zoom:50%;\" /\n比如台式电脑主机, 必须接电源才能工作, 此时可以正常显示当前日期、时间。电脑关机一段时间后,重新开机,系统没有联网,也能正确显"
      },
      {
        "url": "/sdoc/advanced-chapter/file-system/126b09511d060b54b7d725e9.html",
        "relativePath": "/sdoc/30-进阶篇/01-文件系统/LV025-FATFS中自定义的一些函数.html",
        "frontmatter": {
          "title": "LV025-FATFS中自定义的一些函数",
          "date": "2025-09-27 11:14:30",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/advanced-chapter/file-system/126b09511d060b54b7d725e9",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "4b7d725e9ba54c78945189a9341e3b34",
            "useduuid": "4b7d725e9"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV025-FATFS中自定义的一些函数",
        "date": "2025-09-27 11:14:30",
        "excerpt": "",
        "capture": "最终的代码可以看这里:STM32F103-Prj: STM32学习使用(STM32CubeMX+Makefile+VScode+J-Flash) (gitee.com)\n 一、文件系统结构体定义\n为了方便管理文件系统,定义一个结构体:\n```c\ntypedef struct __ex_fatfs\n{\n    FATFS *fs[FF_VOLUMES]; // 逻辑磁盘工作区.\n    BYTE *work;  // 挂载的时候用\n    FIL *file;             // 文件1\n    FIL *ftemp;            // 文件2\n    UINT br;   "
      },
      {
        "url": "/sdoc/advanced-chapter/file-system/126b09511b702501a47f120c.html",
        "relativePath": "/sdoc/30-进阶篇/01-文件系统/LV020-基于SD卡移植FATFS.html",
        "frontmatter": {
          "title": "LV015-基于SD卡移植FATFS",
          "date": "2025-09-27 11:10:24",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/advanced-chapter/file-system/126b09511b702501a47f120c",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "1a47f120cd8c41b6ab06d05da2ace352",
            "useduuid": "1a47f120c"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV015-基于SD卡移植FATFS",
        "date": "2025-09-27 11:10:24",
        "excerpt": "",
        "capture": "我们先来看一下以SD卡为存储介质的FatFs文件系统的移植。另外就是,我后来移植的过程中,发现我们在使用STM32CubeMX配置SDIO的时候不要开SDIO和DMA中断,不然SD卡读写是有问题的,但是吧,移植好文件系统后,不知道为什么,怎么都跑不起来,具体是哪的影响还不清楚,后边知道了再补充。\n 一、底层读写\n 1. 初始化\n首先我们需要初始化SD卡,这里还是使用STM32CubeMX来配置的SDIO,所以初始化就如下函数所示:\n```c\nvoid MX_SDIO_SD_Init(void);\n```\n【函数说明】这个函数是完成SDIO的初始化,也就完成了对SD卡的初始化。注意这里有两个坑,"
      },
      {
        "url": "/sdoc/advanced-chapter/file-system/126b0951078a03391bda267a.html",
        "relativePath": "/sdoc/30-进阶篇/01-文件系统/LV015-基于SPIFLASH移植FATFS.html",
        "frontmatter": {
          "title": "LV015-基于SPIFLASH移植FATFS",
          "date": "2025-09-27 10:59:30",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/advanced-chapter/file-system/126b0951078a03391bda267a",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "91bda267a4934867a0b05673bbc3ef13",
            "useduuid": "91bda267a"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV015-基于SPIFLASH移植FATFS",
        "date": "2025-09-27 10:59:30",
        "excerpt": "",
        "capture": "我们先来看一下以SPI FLASH为存储介质的FatFs文件系统的移植。\n 一、底层读写\n 1. 初始化\n首先我们需要初始化SPI FLASH,在这里我使用的是W25Q128,由于我使用的是STM32CubeMX来配置的SPI,所以初始化就如下函数所示:\n```c\n/* SPI2 init function */\nvoid MX_SPI2_Init(void);\n```\n 2. 获取SPI FLASH器件ID\n这一步其实本不是必须,但是由于代码支持了其他型号的SPI FLASH,所以这一步也就成了必要的步骤,其实也有好处,那就是可以通过读取ID来判断我们的SPI FLASH是否已经初始化完成:"
      },
      {
        "url": "/sdoc/advanced-chapter/file-system/126b095105912fc87e8eb3f7.html",
        "relativePath": "/sdoc/30-进阶篇/01-文件系统/LV010-FATFS简介.html",
        "frontmatter": {
          "title": "LV010-FATFS简介",
          "date": "2025-09-27 10:54:25",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/advanced-chapter/file-system/126b095105912fc87e8eb3f7",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "87e8eb3f76b14573a4c0856bf2257669",
            "useduuid": "87e8eb3f7"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV010-FATFS简介",
        "date": "2025-09-27 10:54:25",
        "excerpt": "",
        "capture": "二、 FatFs简介\n 1. FatFs是什么?\nFATFS 是一个完全免费开源的 FAT 文件系统模块,专门为小型的嵌入式系统而设计。它完全用标准 C 语言编写,所以具有良好的硬件平台独立性,可以移植到 8051、 PIC、 AVR、 SH、Z80、 H8、 ARM 等系列单片机上而只需做简单的修改。它支持 FATl2、 FATl6 和 FAT32,支持多个存储媒介;有独立的缓冲区,可以对多个文件进行读/写,并特别对 8 位单片机和 16 位单片机做了优化。\n 2. 它有什么特点\n(1)Windows 兼容的 FAT 文件系统(支持 FAT12/FAT16/FAT32)\n(2)与平台无关,移"
      },
      {
        "url": "/sdoc/advanced-chapter/file-system/126b0951040033e78ccbca10.html",
        "relativePath": "/sdoc/30-进阶篇/01-文件系统/LV001-文件系统简介.html",
        "frontmatter": {
          "title": "LV001-文件系统简介",
          "date": "2025-09-27 10:50:24",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/advanced-chapter/file-system/126b0951040033e78ccbca10",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "78ccbca106d046ecaee2de5e4c1f5766",
            "useduuid": "78ccbca10"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV001-文件系统简介",
        "date": "2025-09-27 10:50:24",
        "excerpt": "",
        "capture": "一、直接存储的弊端?\n我们前边已经学习了SPI FLASH和SD卡的读写,我们可以使用SPI FLASH直接存储数据,当需要记录字符“STM32 SPI FLASH” 时。 可以把这些文字转化成ASCII码,存储在数组中,然后调用SPI_FLASH_BufferWrite函数,把数组内容写入到SPI Flash芯片的指定地址上,在需要的时候从该地址把数据读取出来,再对读出来的数据以ASCII码的格式进行解读。  \n&lt;img src=\"./LV001-文件系统简介/img/image-20230513212219299.png\" alt=\"image-20230513212219299\" "
      },
      {
        "url": "/sdoc/peripheral/sdio/126b095100d21af60c8ed17e.html",
        "relativePath": "/sdoc/20-基本外设篇/50-SDIO/LV025-读写SD卡实例.html",
        "frontmatter": {
          "title": "LV025-读写SD卡实例",
          "date": "2025-09-27 10:42:10",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/sdio/126b095100d21af60c8ed17e",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "60c8ed17e9a9490aaf1efe2014ac5b67",
            "useduuid": "60c8ed17e"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV025-读写SD卡实例",
        "date": "2025-09-27 10:42:10",
        "excerpt": "",
        "capture": "一、硬件原理图\n我使用的是正点原子战舰V3的开发板,硬件连接如下图:\n&lt;img src=\"./LV025-读写SD卡实例/img/image-20230512193905411.png\" alt=\"image-20230512193905411\" style=\"zoom:50%;\" /\n 二、STM32CubeMX配置\n像LED、按键和串口的配置这里就不再赘述,这里只写SDIO相关配置。注意,这一部分中的中断和DMA相关配置是作为笔记写在这里,后边的测试函数并没有使用DMA以及中断相关的内容,都是使用的查询方式,当使用查询方式,但是又开启了DMA以及相关中断的时候,数据读写可能会失败,这"
      },
      {
        "url": "/sdoc/peripheral/sdio/126b0951000d2a75b964fa55.html",
        "relativePath": "/sdoc/20-基本外设篇/50-SDIO/LV020-STM32的SDIO.html",
        "frontmatter": {
          "title": "LV020-STM32的SDIO",
          "date": "2025-09-27 10:40:13",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/sdio/126b0951000d2a75b964fa55",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "5b964fa55b1c49f2849632ac18e58758",
            "useduuid": "5b964fa55"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV020-STM32的SDIO",
        "date": "2025-09-27 10:40:13",
        "excerpt": "",
        "capture": "本篇文档再看SD卡规范的时候就以文档Physical Layer Simplified Specification v2.0为主啦,因为STM32最高只支持2.0协议的SD卡。\n 一、SDIO简介\n 1. 简介\nSDIO,全称: Secure Digital Input and Output ,即安全数字输入输出接口。它是在SD卡接口的基础上发展而来,它可以兼容之前的SD卡,并可以连接SDIO接口设备,比如:蓝牙、WIFI、照相机等。\nSDIO和SD卡规范间的一个重要区别是增加了低速标准。低速卡的目标应用是以最小的硬件开支支持低速I/ O能力。低速卡支持类似调制解调器、条码扫描仪和GPS接收器"
      },
      {
        "url": "/sdoc/peripheral/sdio/126b0950ff013d660d235356.html",
        "relativePath": "/sdoc/20-基本外设篇/50-SDIO/LV015-SD卡的操作.html",
        "frontmatter": {
          "title": "LV015-SD卡的操作",
          "date": "2025-09-27 10:37:45",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/sdio/126b0950ff013d660d235356",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "60d235356a8a41c6b5be0b1b1d22ed03",
            "useduuid": "60d235356"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV015-SD卡的操作",
        "date": "2025-09-27 10:37:45",
        "excerpt": "",
        "capture": "一、SD卡命令\nSD命令由主机发出,以广播命令和寻址命令为例,广播命令是针对与SD主机总线连接的所有从设备发送的,寻址命令是指定某个地址设备进行命令传输。这一章的内容我们可以参考文档 Physical Layer Simplified Specification v9.0 的 4.7 Commands  章节。 \n 1. 命令格式\nSD命令格式固定为48bit,都是通过CMD线连续传输的, 数据线不参与。  \n&lt;img src=\"./LV015-SD卡的操作/img/image-20230510194931239.png\" alt=\"image-20230510194931239\" st"
      },
      {
        "url": "/sdoc/peripheral/sdio/126b0950fe110bc81c4d2fd3.html",
        "relativePath": "/sdoc/20-基本外设篇/50-SDIO/LV001-SD卡简介.html",
        "frontmatter": {
          "title": "LV001-SD卡简介",
          "date": "2025-09-27 10:35:05",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/sdio/126b0950fe110bc81c4d2fd3",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "81c4d2fd3b3049a1a63dd12e12b5a3fa",
            "useduuid": "81c4d2fd3"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV001-SD卡简介",
        "date": "2025-09-27 10:35:05",
        "excerpt": "",
        "capture": "这篇笔记主要看的是文档 Physical Layer Simplified Specification v9.0 ,但其实应该看文档Physical Layer Simplified Specification v2.0可能会更好一些,虽然他们基本是一样的(因为后边好像说是STM32做多支持到2.0版本的SD卡)。\n 一、SD卡简介\n 1. 什么是SD卡?\n SD卡(Secure Digital Memory Card)即:安全数码卡,它是在MMC的基础上发展而来,是一种基于半导体快闪记忆器的新一代记忆设备,是SD协会开发的一种专有 的非易失性 存储卡格式,用于便携式设备。由于它体积小、数据传"
      },
      {
        "url": "/sdoc/peripheral/dma/126b0950fc960317c7b64826.html",
        "relativePath": "/sdoc/20-基本外设篇/40-DMA/LV010-DMA使用实例.html",
        "frontmatter": {
          "title": "LV010-DMA使用实例",
          "date": "2025-09-27 10:31:26",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/dma/126b0950fc960317c7b64826",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "7c7b6482620b4698a5eac4b6e449f631",
            "useduuid": "7c7b64826"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV010-DMA使用实例",
        "date": "2025-09-27 10:31:26",
        "excerpt": "",
        "capture": "这里的实例都是通过STM32CubeMX软件进行配置。\n 一、存储器到存储器\nFLASH to SRAM,把内部FLASH的数据传输到内部的SRAM。在这里相当于将FLASH当做外设,将SRAM作为存储器,将数据从外设传输到存储器  。一般步骤如下:\n(1)使能 DMA 时钟;\n(2)配置 DMA 数据参数;\n(3)使能 DMA,进行传输;\n(4)等待传输完成,并对源数据和目标地址数据进行比较。  \n 1. STM32CubeMX配置\n&lt;img src=\"./LV010-DMA使用实例/img/image-20230505195655829.png\" alt=\"image-2023050"
      },
      {
        "url": "/sdoc/peripheral/dma/126b0950fbc52669af52caac.html",
        "relativePath": "/sdoc/20-基本外设篇/40-DMA/LV001-DMA简介.html",
        "frontmatter": {
          "title": "LV001-DMA简介",
          "date": "2025-09-27 10:29:17",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/dma/126b0950fbc52669af52caac",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "9af52caac91c42b1b28d2e09c22f8d43",
            "useduuid": "9af52caac"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV001-DMA简介",
        "date": "2025-09-27 10:29:17",
        "excerpt": "",
        "capture": "一、DMA简介\n 1. 简介\nDMA,即 Direct Memory Access,直接存储器访问。是单片机的一个外设,它的主要功能是用来搬数据,但是不需要占用 CPU,即在传输数据的时候, CPU 可以干其他的事情,好像是多线程一样。数据传输支持从外设到存储器或者存储器到存储器,这里的存储器可以是 SRAM 或者是 FLASH。\n我们知道CPU根据代码内容执行指令,这些众多指令中,有的用于计算、有的用于控制程序、有的用于转移数据等。 其中转移数据的指令,尤其是转移大量数据,会占用大量CPU资源。  例如把外设A的数据,传给外设B,这种情况其实不需要CPU一直参与,只需在A、 B之间创建个通道"
      },
      {
        "url": "/sdoc/peripheral/spi/126b0950f849211ff053e7ff.html",
        "relativePath": "/sdoc/20-基本外设篇/35-SPI/LV015-SPI读写W25QXXX实例.html",
        "frontmatter": {
          "title": "LV015-SPI读写W25QXXX实例",
          "date": "2025-09-27 10:20:25",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/spi/126b0950f849211ff053e7ff",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "ff053e7ff3e247358beec3bab1ba61de",
            "useduuid": "ff053e7ff"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV015-SPI读写W25QXXX实例",
        "date": "2025-09-27 10:20:25",
        "excerpt": "",
        "capture": "一、一般步骤\n通过SPI读写外部FLASH的一般步骤如下:\n(1)初始化通讯使用的目标引脚及端口时钟;\n(2)使能 SPI 外设的时钟;\n(3)配置 SPI 外设的模式、地址、速率等参数并使能 SPI 外设;\n(4)编写基本 SPI 按字节收发的函数;\n(5)编写对 FLASH 擦除及读写操作的的函数;\n(6)编写测试程序,对读写数据进行校验。  \n 二、硬件原理图\n&lt;img src=\"./LV015-SPI读写W25QXXX实例/img/image-20230507205517724.png\" alt=\"image-20230507205517724\" style=\"zoom:50%;"
      },
      {
        "url": "/sdoc/peripheral/spi/126b0950f64a0b5a3fbcba93.html",
        "relativePath": "/sdoc/20-基本外设篇/35-SPI/LV010-W25QXXX简介.html",
        "frontmatter": {
          "title": "LV010-W25QXXX简介",
          "date": "2025-09-27 10:15:14",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/spi/126b0950f64a0b5a3fbcba93",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "a3fbcba93d1642329a28cddcb65ad8e8",
            "useduuid": "a3fbcba93"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV010-W25QXXX简介",
        "date": "2025-09-27 10:15:14",
        "excerpt": "",
        "capture": "一、简介\nEEPROM和Flash的本质上是一样的, 都用于保存数据,Flash包括MCU内部的Flash和外部扩展的Flash,我使用的开发板的W25Q128就是一个SPI接口的外部NOR Flash。从功能上, Flash通常存放运行代码,运行过程中不会修改,而EEPROM存放用户数据,可能会反复修改。 从结构上, Flash按扇区操作, EEPROM通常按字节操作。  \nW25Q128是华邦的一款SPI接口 NOR FLASH 芯片,我看我使用的开发板上使用的型号是W25Q128JV,我们可以在这里找到它的芯片手册:W25Q128JV-datasheet。\n我们看芯片手册的开头,有这么几"
      },
      {
        "url": "/sdoc/peripheral/spi/126b0950f4ae14889c830ae3.html",
        "relativePath": "/sdoc/20-基本外设篇/35-SPI/LV001-STM32的SPI.html",
        "frontmatter": {
          "title": "LV001-STM32的SPI",
          "date": "2025-09-27 10:11:02",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/spi/126b0950f4ae14889c830ae3",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "89c830ae3a594952be17b5abc6bbb737",
            "useduuid": "89c830ae3"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV001-STM32的SPI",
        "date": "2025-09-27 10:11:02",
        "excerpt": "",
        "capture": "一、SPI简介\n这一部分可以查看笔记《60-通信专题/30-SPI/LV001-SPI简介.md》。\n 二、STM32的SPI外设\n 1. 简介\nSTM32 的 SPI 外设可用作通讯的主机及从机,支持最高的 SCK 时钟频率为 fpclk/2 (STM32F103 型号的芯片默认 f:sub:pclk1 为 36MHz, fpclk2 为72MHz),完全支持 SPI 协议的 4 种模式,数据帧长度可设置为 8 位或 16 位,可设置数据 MSB 先行或 LSB 先行。它还支持双线全双工、双线单向以及单线模式。其中双线单向模式可以同时使用 MOSI 及 MISO 数据线向一个方向传输数据,可"
      },
      {
        "url": "/sdoc/communication/can/126b0950f34624bdf8f7407f.html",
        "relativePath": "/sdoc/60-通信专题/40-CAN/LV001-CAN通信简介.html",
        "frontmatter": {
          "title": "LV001-CAN通信简介",
          "date": "2025-09-27 10:07:42",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/communication/can/126b0950f34624bdf8f7407f",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "df8f7407fc324becb0237697f4ea8f9c",
            "useduuid": "df8f7407f"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV001-CAN通信简介",
        "date": "2025-09-27 10:07:42",
        "excerpt": "",
        "capture": "一、CAN简介\n 1. CAN\n控制器局域网( Controller Area Network, CAN) ,是由德国BOSCH(博世)公司开发, 是目前国际上应用最为广泛的现场总线之一。 其特点是可拓展性好,可承受大量数据的高速通信, 高度稳定可靠,因此常应用于汽车电子领域、工业自动化、医疗设备等高要求环境。  \n它是 ISO 国际标准化的串行通信协议。在当前的汽车产业中,出于对安全性、舒适性、方便性、低公害、低成本的要求,各种各样的电子控制系统被开发了出来。由于这些系统之间通信所用的数据类型及对可靠性的要求不尽相同,由多条总线构成的情况很多,线束的数量也随之增加。为适应“减少线束的数量”、"
      },
      {
        "url": "/sdoc/communication/serial-port/126b0950f287303e7c68cbb5.html",
        "relativePath": "/sdoc/60-通信专题/10-串口/LV030-RS485简介.html",
        "frontmatter": {
          "title": "LV030-RS485简介",
          "date": "2025-09-27 10:05:51",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/communication/serial-port/126b0950f287303e7c68cbb5",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "e7c68cbb501d41a4be750e720e3a5e0a",
            "useduuid": "e7c68cbb5"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV030-RS485简介",
        "date": "2025-09-27 10:05:51",
        "excerpt": "",
        "capture": "一、RS485简介\nRS485是美国电子工业协会( Electronic Industries Association, EIA)于1983年发布的串行通信接口标准,经通讯工业协会( TIA)修订后命名为TIA/EIA-485-A。  485(一般称作RS485/EIA-485)是隶属于OSI模型物理层的电气特性规定为2线,半双工,多点通信的标准。用缆线两端的电压差值来表示传递信号。RS485仅仅规定了接受端和发送端的电气特性。它没有规定或推荐任何数据协议。\nRS485比RS232晚出现20多年,很多RS232的缺点,在RS485上有了改进。RS232的电平从-15V至+15V, 较高的电平值"
      },
      {
        "url": "/sdoc/communication/serial-port/126b0950f26b1afbd6db3885.html",
        "relativePath": "/sdoc/60-通信专题/10-串口/LV020-RS232简介.html",
        "frontmatter": {
          "title": "LV020-RS232简介",
          "date": "2025-09-27 10:05:23",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/communication/serial-port/126b0950f26b1afbd6db3885",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "bd6db38856214d8db0d0697d94245e7d",
            "useduuid": "bd6db3885"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV020-RS232简介",
        "date": "2025-09-27 10:05:23",
        "excerpt": "",
        "capture": "一、RS232简介\nRS232是美国电子工业协会( Electronic Industries Association, EIA) 于1962年发布的串行通信接口标准,其中RS为英文“ Recomend Standard”的缩写, 中文翻译为“ 推荐标准”, 232为标识号。该标准对串行通信的物理接口及逻辑电平都做了规定, 其输出的电平称为RS232电平。早期常见于个人计算机上,是计算机通讯接口之一。现如今在个人计算机上已比较少见, 但在一些工控设备依旧比较多。\n最简单的RS232通信由三条数据线组成,即TXD、 RXD和GND。 RS232采用负逻辑电平,即-15V ~ -3V代表逻辑“ 1"
      },
      {
        "url": "/sdoc/communication/spi/126b0950dceb1d850b1e36d8.html",
        "relativePath": "/sdoc/60-通信专题/30-SPI/LV001-SPI简介.html",
        "frontmatter": {
          "title": "LV001-SPI简介",
          "date": "2025-09-27 09:50:19",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/communication/spi/126b0950dceb1d850b1e36d8",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "50b1e36d86eb4c0e85c11fe350fcd877",
            "useduuid": "50b1e36d8"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV001-SPI简介",
        "date": "2025-09-27 09:50:19",
        "excerpt": "",
        "capture": "一、 SPI协议简介\n 1. 什么是SPI?\nSPI 协议,Serial Peripheral Interface  ,即串行外围设备接口, 是由摩托罗拉公司提出的通讯协议( Motorola) 在1980前后提出的一种全双工同步串行通信接口,它用于MCU与各种外围设备以串行方式进行通信以交换信息,通信速度最高可达25MHz以上。SPI接口主要应用在EEPROM、 FLASH、实时时钟、网络控制器、 OLED显示驱动器、 AD转换器,数字信号处理器、数字信号解码器等与MCU间要求通讯速率较高的场合 。\nSPI,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管"
      },
      {
        "url": "/sdoc/basic/stm32memory/126b0941431c016e4bdd2a68.html",
        "relativePath": "/sdoc/10-基础篇/60-STM32的内存/LV001-STM32内存简介.html",
        "frontmatter": {
          "title": "LV001-STM32内存简介",
          "date": "2025-09-26 07:26:04",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/basic/stm32memory/126b0941431c016e4bdd2a68",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "e4bdd2a68030419b91dea7af452724aa",
            "useduuid": "e4bdd2a68"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV001-STM32内存简介",
        "date": "2025-09-26 07:26:04",
        "excerpt": "",
        "capture": "其实断断续续的,STM32启动文件、启动方式、程序组成、map文件、sct文件、sram、内部flash都大概已经了解过了,这里进行总结,从stm32启动开始,到程序跑起来,这中间究竟是怎么个过程。\n\n 一、单片机的启动\n&lt;img src=\"./LV001-STM32内存简介/img/image-20251008084514529.png\" alt=\"image-20251008084514529\" style=\"zoom:50%;\" /&gt;\n关于存储器映像,可以看 10-基础篇/10-STM32基础/LV045-STM32存储器系统.md\n关于启动方式,我们可以看 10-基础篇/2"
      },
      {
        "url": "/sdoc/basic/stm32flash/126b0934555e1e98aa9081c5.html",
        "relativePath": "/sdoc/10-基础篇/50-STM32内部FLASH/LV010-FLASH操作流程.html",
        "frontmatter": {
          "title": "LV010-FLASH操作流程",
          "date": "2025-09-25 22:53:10",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/basic/stm32flash/126b0934555e1e98aa9081c5",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "8aa9081c5bfb4658bc14302518ab96b3",
            "useduuid": "8aa9081c5"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV010-FLASH操作流程",
        "date": "2025-09-25 22:53:10",
        "excerpt": "",
        "capture": "我这里使用的是STM32CubeMX来配置生成工程,使用的就是HAL库,由于内部Flash不需要我们来做初始化,所以软件不用配置,我们直接调用相应的驱动函数即可。这些可以操作内部Flash的函数声明都存在于 以下几个文件中:\n```c\nstm32f1xx_hal_flash_ex.h\nstm32f1xx_hal_flash.h \nstm32f1xx_hal_flash_ex.c\nstm32f1xx_hal_flash.c \n```\n关于Flash的相关资料,ST官方有另外的文档,叫做STM32F10xxx闪存编程手册,英文版在这里:STM32F10xxx Flash memory microc"
      },
      {
        "url": "/sdoc/basic/stm32flash/126b09345207167f3ed95339.html",
        "relativePath": "/sdoc/10-基础篇/50-STM32内部FLASH/LV001-内部FLASH简介.html",
        "frontmatter": {
          "title": "LV001-内部FLASH简介",
          "date": "2025-09-25 22:44:55",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/basic/stm32flash/126b09345207167f3ed95339",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "f3ed95339a054335bd7861fbbdfca984",
            "useduuid": "f3ed95339"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV001-内部FLASH简介",
        "date": "2025-09-25 22:44:55",
        "excerpt": "",
        "capture": "一、内部FLASH\n这里了解一下内部Flash的一些内容,并不涉及对内部Flash读写等相关操作。\n 1. FLASH\n 简介\nflash是存储芯片的一种,通过特定的程序可以修改里面的数据。FLASH在电子以及半导体领域内往往表示 Flash Memory 的意思,即平时所说的“闪存”,全名叫 Flash EEPROM Memory。它结合了ROM和RAM的长处,不仅具备电子可擦除可编程(EEPROM)的性能,还可以快速读取数据(NVRAM的优势),使数据不会因为断电而丢失。\n在STM32芯片内部有一个FLASH存储器,它主要用于存储代码,它是一种nor flash。我们在电脑上编写好应用程序"
      },
      {
        "url": "/sdoc/peripheral/i2c/126b09344f37186302faabd7.html",
        "relativePath": "/sdoc/20-基本外设篇/30-I2C/LV015-AT24C02使用实例.html",
        "frontmatter": {
          "title": "LV015-AT24C02使用实例",
          "date": "2025-09-25 22:37:35",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/i2c/126b09344f37186302faabd7",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "302faabd7f05494cbdcffb39c1c91164",
            "useduuid": "302faabd7"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV015-AT24C02使用实例",
        "date": "2025-09-25 22:37:35",
        "excerpt": "",
        "capture": "一、硬件原理图\n&lt;img src=\"./LV015-AT24C02使用实例/img/image-20230507133622454.png\" alt=\"image-20230507133622454\" style=\"zoom:50%;\" /\n可以看到这里的AT24C02接在了PB6和PB7,也就是I2C1上边。\n 二、物理I2C读写AT24C02\n一般步骤如下:\n(1)配置通讯使用的目标引脚为开漏模式;\n(2)使能 I2C 外设的时钟;\n(3)配置 I2C 外设的模式、地址、速率等参数并使能 I2C 外设;\n(4)编写基本 I2C 按字节收发的函数;  \n(5)编写读写 EEPROM 存"
      },
      {
        "url": "/sdoc/peripheral/i2c/126b09344d8f021f00cacd6c.html",
        "relativePath": "/sdoc/20-基本外设篇/30-I2C/LV010-AT24C02简介.html",
        "frontmatter": {
          "title": "LV010-AT24C02简介",
          "date": "2025-09-25 22:33:11",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/i2c/126b09344d8f021f00cacd6c",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "f00cacd6ccbd4a459325107dc47b447a",
            "useduuid": "f00cacd6c"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV010-AT24C02简介",
        "date": "2025-09-25 22:33:11",
        "excerpt": "",
        "capture": "一、EEPROM简介\nEEPROM (Electrically Erasable Programmable read only memory)是指带电可擦可编程只读存储器。是一种掉电后数据不丢失的存储芯片。 EEPROM 可以在电脑上或专用设备上擦除已有信息,重新编程。一般用在即插即用。\n我们这一节的笔记主要是关于AT24C02的使用,它是一个串行电可擦除和可编程只读存储器(EEPROM),总容量是256(2K/8)个字节,通过IIC通信。它是 Atmel 公司的一款芯片,我们我使用的战舰V3的开发板上时AT24C02BN,我们可以在这里找到它的数据手册:AT24C01A/02/04/08/1"
      },
      {
        "url": "/sdoc/peripheral/i2c/126b09344c01323883ac1ab4.html",
        "relativePath": "/sdoc/20-基本外设篇/30-I2C/LV001-STM32的I2C.html",
        "frontmatter": {
          "title": "LV001-STM32的I2C",
          "date": "2025-09-25 22:29:13",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/i2c/126b09344c01323883ac1ab4",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "883ac1ab454e45c8903061818823ca7f",
            "useduuid": "883ac1ab4"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV001-STM32的I2C",
        "date": "2025-09-25 22:29:13",
        "excerpt": "",
        "capture": "一、I2C简介\n这一部分可以查看笔记60-通信专题/01-I2C协议/LV001-I2C简介.md,这篇笔记主要是关于I2C的物理层协议,读写时序以及各个信号的说明包括对各信号的模拟。\n 二、STM32的物理I2C\n 1. 物理I2C框图\n这一部分我们可以查看STM32中文参考手册的24 I2C接口一节:\n&lt;img src=\"./LV001-STM32的I2C/img/image-20230507110330416.png\" alt=\"image-20230507110330416\" style=\"zoom:50%;\" /\n 2. ①通信引脚\n通信引脚在框图中有三根:\n(1)SDA——数"
      },
      {
        "url": "/sdoc/peripheral/fsmc/sram/126b0924b2d20263b97733d0.html",
        "relativePath": "/sdoc/20-基本外设篇/25-FSMC/05-外部SRAM/LV015-外部SRAM读写实例.html",
        "frontmatter": {
          "title": "LV015-外部SRAM读写实例",
          "date": "2025-09-24 20:06:58",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/fsmc/sram/126b0924b2d20263b97733d0",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "3b97733d0c5f43148008ceafa2203f32",
            "useduuid": "3b97733d0"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV015-外部SRAM读写实例",
        "date": "2025-09-24 20:06:58",
        "excerpt": "",
        "capture": "一、硬件原理图\n我使用的是正点原子战舰V3的板子,硬件连接如下图:\n&lt;img src=\"./LV015-外部SRAM读写实例/img/image-20230503175021794.png\" alt=\"image-20230503175021794\" style=\"zoom:50%;\" /\n 二、STM32CubeMX配置\n这里只关心FSMC的配置,其他的可以看前边的笔记。\n 1. FSMC配置\n 1.1 模式选择\n&lt;img src=\"./LV015-外部SRAM读写实例/img/image-20230515064458738.png\" alt=\"image-20230515064"
      },
      {
        "url": "/sdoc/peripheral/fsmc/fsmc-basic/126b0924b19533081adda526.html",
        "relativePath": "/sdoc/20-基本外设篇/25-FSMC/01-FSMC基础/LV010-相关HAL库函数.html",
        "frontmatter": {
          "title": "LV010-相关HAL库函数",
          "date": "2025-09-24 20:03:41",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/fsmc/fsmc-basic/126b0924b19533081adda526",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "81adda5266e04132bfcad67ecceec69d",
            "useduuid": "81adda526"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV010-相关HAL库函数",
        "date": "2025-09-24 20:03:41",
        "excerpt": "",
        "capture": "一、库中的寄存器\n在 MDK 的寄存器定义里面,并没有定义 FSMC_BCRx、 FSMC_BTRx、 FSMC_BWTRx 等这个单独的寄存器,而是将他们进行了一些组合。FSMC_BCRx 和 FSMC_BTRx,组合成 BTCR[8]寄存器组,他们的对应关系如下:  \n```c\nBTCR[0]---\nBTCR[2]---&gt;FSMC_BCR2, BTCR[3]---&gt;FSMC_BTR2\nBTCR[4]---&gt;FSMC_BCR3, BTCR[5]---&gt;FSMC_BTR3\nBTCR[6]---&gt;FSMC_BCR4, BTCR[7]---&gt;FSMC_BTR4\n"
      },
      {
        "url": "/sdoc/peripheral/fsmc/fsmc-basic/126b092499b000721416c9a0.html",
        "relativePath": "/sdoc/20-基本外设篇/25-FSMC/01-FSMC基础/LV005-存储器映射与控制器.html",
        "frontmatter": {
          "title": "LV005-存储器映射与控制器",
          "date": "2025-09-24 19:42:24",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/fsmc/fsmc-basic/126b092499b000721416c9a0",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "21416c9a03d8478188e3897a2c59aa5e",
            "useduuid": "21416c9a0"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV005-存储器映射与控制器",
        "date": "2025-09-24 19:42:24",
        "excerpt": "",
        "capture": "一、存储器映射?\n 1. 直接访问地址?\nFSMC连接好外部的存储器并初始化后,就可以直接通过访问地址来读写数据。FSMC访问存储器的方式与I2C EEPROM、SPI FLASH的不一样,后两种方式都需要控制I2C或SPI总线给存储器发送地址,然后获取数据;在程序里,这个地址和数据都需要分开使用不同的变量存储,并且访问时还需要使用代码控制发送读写命令。而使用FSMC外接存储器时,其存储单元是映射到STM32的内部寻址空间的;在程序里,定义一个指向这些地址的指针,然后就可以通过指针直接修改该存储单元的内容,FSMC外设会自动完成数据访问过程,读写命令之类的操作不需要程序控制。\n 2. FSMC"
      },
      {
        "url": "/sdoc/peripheral/fsmc/fsmc-basic/126b092492553b23e8704ba7.html",
        "relativePath": "/sdoc/20-基本外设篇/25-FSMC/01-FSMC基础/LV001-FSMC简介.html",
        "frontmatter": {
          "title": "LV001-FSMC简介",
          "date": "2025-09-24 19:23:41",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/fsmc/fsmc-basic/126b092492553b23e8704ba7",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "3e8704ba79214a3cbb9ab231d637b62e",
            "useduuid": "3e8704ba7"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV001-FSMC简介",
        "date": "2025-09-24 19:23:41",
        "excerpt": "",
        "capture": "这一部分我们可以参考 STM32中文参考手册的 19 灵活的静态存储器控制器(FSMC) 一节。\n 一、FSMC简介\n 1. 什么是FSMC\nFSMC,Flexible static memory controller,即灵活的静态存储控制器,能够与同步或异步存储器和 16 位 PC 存储器卡连接,STM32F1 的 FSMC 接口支持包括 SRAM、 NAND FLASH、 NOR FLASH 和 PSRAM 等存储器,但是不能驱动如SDRAM这种动态的存储器。  而在STM32F429系列的控制器中,它具有FMC外设,支持控制SDRAM存储器。\nSTM32F103ZET6的内部有64KB的"
      },
      {
        "url": "/sdoc/peripheral/fsmc/sram/126b09248e5b007fcadf7acc.html",
        "relativePath": "/sdoc/20-基本外设篇/25-FSMC/05-外部SRAM/LV001-概述.html",
        "frontmatter": {
          "title": "LV001-概述",
          "date": "2025-09-24 19:13:23",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/fsmc/sram/126b09248e5b007fcadf7acc",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "fcadf7accc90458fa4cab2cebf963be3",
            "useduuid": "fcadf7acc"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV001-概述",
        "date": "2025-09-24 19:13:23",
        "excerpt": "",
        "capture": "一、什么是SRAM\n这个参考:10-基础篇/01-概述/LV010-常见存储器.md\n 二、为什么要扩展SRAM?\nSTM32控制器芯片内部有一定大小的SRAM及FLASH作为内存和程序存储空间,程序下载的时候是存放在内部的FLASH中的,在程序运行过程中,会有一些变量或者其他的东西存放在SRAM中运行,这就跟我们PC电脑上的内存一样。当程序较大,内存和程序空间不足时,就需要在STM32芯片的外部扩展存储器了。STM32F103ZE系列芯片可以扩展外部SRAM用作内存。\n给STM32芯片扩展内存与给PC扩展内存的原理是一样的,只是PC上一般以内存条的形式扩展,而且内存条实质是由多个内存颗粒(即"
      },
      {
        "url": "/sdoc/peripheral/fsmc/sram/126b09248db61d861c837fd7.html",
        "relativePath": "/sdoc/20-基本外设篇/25-FSMC/05-外部SRAM/LV005-IS62WV51216简介.html",
        "frontmatter": {
          "title": "LV005-IS62WV51216简介",
          "date": "2025-09-24 19:11:58",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/fsmc/sram/126b09248db61d861c837fd7",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "61c837fd7bf24e47b455ebbf97c03db7",
            "useduuid": "61c837fd7"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV005-IS62WV51216简介",
        "date": "2025-09-24 19:11:58",
        "excerpt": "",
        "capture": "一、简介\n IS62WV51216是ISSI(Integrated Silicon Solution, Inc)公司生产的一颗16位宽512K(512\\*16,即1M字节)容量的CMOS静态内存(SRAM)芯片。开发板上使用的完整的型号是 IS62WV51216BLL,它有以下特点:\n(1)高速。具有45ns/55ns访问速度。\n(2)低功耗。操作时:36mW;待机时:12uW。\n(3)兼容TTL电平。\n(4)全静态操作。不需要刷新和时钟电路。 \n(5)三态输出。\n(6)字节控制功能。支持高/低字节控制。\n 二、引脚说明\n&lt;img src=\"./LV005-IS62WV51216简介/i"
      },
      {
        "url": "/sdoc/peripheral/fsmc/sram/126b09248ce51200a79d393f.html",
        "relativePath": "/sdoc/20-基本外设篇/25-FSMC/05-外部SRAM/LV002-XM8A51216简介.html",
        "frontmatter": {
          "title": "LV002-XM8A51216简介",
          "date": "2025-09-24 19:09:49",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/fsmc/sram/126b09248ce51200a79d393f",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "0a79d393fee944b89889bdacfda6ea95",
            "useduuid": "0a79d393f"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV002-XM8A51216简介",
        "date": "2025-09-24 19:09:49",
        "excerpt": "",
        "capture": "一、简介\nXM8A51216 是深圳星忆存储科技有限公司(星忆存储 )生产的一颗 16 位宽 512K(512*16,即 1M 字节)容量的 CMOS 静态内存芯片。我们可以在这里找到它的芯片手册:。该芯片具有如下几个特点 :\n(1)高速。 具有最高访问速度 10/12ns。\n(2)低功耗。\n(3)TTL 电平兼容。\n(4)全静态操作。不需要刷新和时钟电路。\n(5)三态输出。\n(6)字节控制功能。支持高/低字节控制。  \n 二、功能框图\n功能框图我们可以看 XM8A51216V33(8M).pdf (xingmem.com).pdf) 的 Logic Block Diagram:\n&lt;im"
      },
      {
        "url": "/sdoc/dev-tool/keil/126b0913865605b5493dc70e.html",
        "relativePath": "/sdoc/01-开发工具/01-keil/LV017-Listing目录文件.html",
        "frontmatter": {
          "title": "LV017-Listing目录文件",
          "date": "2025-09-23 07:51:58",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/dev-tool/keil/126b0913865605b5493dc70e",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "5493dc70ee6849e0b32a91f39d8e2488",
            "useduuid": "5493dc70e"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV017-Listing目录文件",
        "date": "2025-09-23 07:51:58",
        "excerpt": "",
        "capture": "本篇笔记主要是参考的野火的文档。使用的工程呢可以去这里下载:ebf_stm32f103_badao_std_code: 野火STM32F103 霸道开发板 标准库教程配套代码 (gitee.com)\n\n在Listing目录下包含了.map及.lst文件,它们都是文本格式的,可使用Windows的记事本软件打开。其中lst文件仅包含了一些汇编符号的链接信息,这些文件中重点是map文件。\n 一、Listing目录位置选择\n这里存放的都是链接器链接过程中用到的或者生成的文件,我们也是可以自行配置目录位置的:\n&lt;img src=\"./LV017-Listing目录文件/img/image-202"
      },
      {
        "url": "/sdoc/dev-tool/keil/126b0913857d3670d6f0eef1.html",
        "relativePath": "/sdoc/01-开发工具/01-keil/LV015-MDK工程文件简介.html",
        "frontmatter": {
          "title": "LV015-MDK工程文件简介",
          "date": "2025-09-23 07:49:41",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/dev-tool/keil/126b0913857d3670d6f0eef1",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "0d6f0eef153042fc862dc752cb0e3c2d",
            "useduuid": "0d6f0eef1"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV015-MDK工程文件简介",
        "date": "2025-09-23 07:49:41",
        "excerpt": "",
        "capture": "本篇笔记主要是参考的野火的文档。使用的工程呢可以去这里下载:ebf_stm32f103_badao_std_code: 野火STM32F103 霸道开发板 标准库教程配套代码 (gitee.com)\n\n 一、MDK工程文件类型\n 1. Project工程文件\n&lt;table&gt;\n    &lt;tbody&gt;\n        &lt;tr&gt;&lt;td align=\"left\"&gt;后缀&lt;/td&gt;&lt;td align=\"left\"&gt;说明&lt;/td&gt;&lt;/tr&gt;\n        &lt;tr&gt;&lt;td align=\"left"
      },
      {
        "url": "/sdoc/dev-tool/keil/126b091384f9220a0ff9cf1d.html",
        "relativePath": "/sdoc/01-开发工具/01-keil/LV016-Output目录文件.html",
        "frontmatter": {
          "title": "LV016-Output目录文件",
          "date": "2025-09-23 07:48:09",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/dev-tool/keil/126b091384f9220a0ff9cf1d",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "a0ff9cf1dff34a1790997424e34bac30",
            "useduuid": "a0ff9cf1d"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV016-Output目录文件",
        "date": "2025-09-23 07:48:09",
        "excerpt": "",
        "capture": "本篇笔记主要是参考的野火的文档。使用的工程呢可以去这里下载:ebf_stm32f103_badao_std_code: 野火STM32F103 霸道开发板 标准库教程配套代码 (gitee.com)\n\n 一、Output目录位置选择\nOutput目录是存放输出文件以及一些中间文件的目录,这个目录是可以配置的:\n&lt;img src=\"./LV016-Output目录文件/img/image-20230529200416215-1758358981825-2.png\" alt=\"image-20230529200416215\" style=\"zoom: 67%;\" /&gt;\n点击 MDK 中"
      },
      {
        "url": "/sdoc/communication/serial-port/126b0904421d06db7b197798.html",
        "relativePath": "/sdoc/60-通信专题/10-串口/LV001-串口通信简介.html",
        "frontmatter": {
          "title": "LV001-串口通信简介",
          "date": "2025-09-22 07:46:53",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/communication/serial-port/126b0904421d06db7b197798",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "b7b197798fd74f3fb97abd23e12eb7bc",
            "useduuid": "b7b197798"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV001-串口通信简介",
        "date": "2025-09-22 07:46:53",
        "excerpt": "",
        "capture": "一、串口通信简介\n 1. 串口简介\n串口通讯(Serial Communication)是一种设备间非常常用的串行通讯方式,因为它简单便捷,因此大部分电子设备都支持该通讯方式。串口全称叫做串行接口,通常也叫做 COM 接口,串行接口指的是数据一个一个的顺序传输,通信线路简单。使用两条线即可实现双向通信,一条用于发送,一条用于接收。串口通信距离远,但是速度相对会低,串口是一种很常用的工业接口。我们常用串行外设接口有UART和USART两种:\n- UART:UART 全称是 Universal Asynchronous Receiver/Trasmitter,也就是异步串行收发器。\n- USART"
      },
      {
        "url": "/sdoc/communication/i2c/126b09043fca31869028172d.html",
        "relativePath": "/sdoc/60-通信专题/01-I2C协议/LV020-AT24C02实例分析.html",
        "frontmatter": {
          "title": "LV020-AT24C02实例分析",
          "date": "2025-09-22 07:40:58",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/communication/i2c/126b09043fca31869028172d",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "69028172daa144dcbab34851329c3348",
            "useduuid": "69028172d"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV020-AT24C02实例分析",
        "date": "2025-09-22 07:40:58",
        "excerpt": "",
        "capture": "AT24C02 是一个 256 (2K/8)个字节的 EEPROM ,它使用的接口就是 I2C ,在它的芯片手册中,给出了读写时序的时序图,我们就以此器件为例分析一下 I2C 的读写时序。\n 一、单字节写时序\n&lt;img src=\"./LV020-AT24C02实例分析/img/image-20220903160151362.png\" alt=\"image-20220903160151362\" style=\"zoom:50%;\" /\n(1)开始信号。\n(2)发送  I2C  设备地址,每个  I2C  器件都有一个设备地址,通过发送具体的设备地址来决定访问哪个  I2C  器件。这是一个 "
      },
      {
        "url": "/sdoc/communication/i2c/126b09043f2d250b963bfb0d.html",
        "relativePath": "/sdoc/60-通信专题/01-I2C协议/LV001-I2C简介.html",
        "frontmatter": {
          "title": "LV001-I2C简介",
          "date": "2025-09-22 07:39:01",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/communication/i2c/126b09043f2d250b963bfb0d",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "b963bfb0deb74fcaa8f060b7b084d3d8",
            "useduuid": "b963bfb0d"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV001-I2C简介",
        "date": "2025-09-22 07:39:01",
        "excerpt": "",
        "capture": "一、I2C简介\n 1. I2C介绍\nI2C 就是 I2C ( Inter-Integrated Circuit )总线,是一种多主从架构串行通信总线。在1980年由 PHILIPS  (飞利浦)公司开发的两线式串行、同步、半双工、多主多从的通信总线,用于连接微控制器及其外围设备。它可以让主板、嵌入式系统或手机连接低速周边设备, 如今在嵌入式领域是非常常见。\n它是由数据线  SDA  和时钟  SCL  构成的串行总线,可发送和接收数据。在  CPU  与被控  IC  之间、  IC  与  IC  之间进行双向传送数据, 标准 I2C 总线传输速率可到 100kbps ,高速  I2C  总"
      },
      {
        "url": "/sdoc/communication/126b09043e1c12685fda3fb8.html",
        "relativePath": "/sdoc/60-通信专题/LV001-通信概述.html",
        "frontmatter": {
          "title": "LV001-通信概述",
          "date": "2025-09-22 07:36:28",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/communication/126b09043e1c12685fda3fb8",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "85fda3fb8df54e90807dd03d5831b5bf",
            "useduuid": "85fda3fb8"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV001-通信概述",
        "date": "2025-09-22 07:36:28",
        "excerpt": "",
        "capture": "一、通信的两种方式\n处理器与外部设备通信,按数据传送的方式,通讯可分为串行通讯与并行通讯,但是一般我们看到的大多数都是串行通信。\n 1.串行通信\n串行通讯是指设备之间通过少量数据信号线(一般是 8 根以下), 地线以及控制信号线,按数据位形式一位一位地传输数据的通讯方式。\n- 传输原理:数据按位顺序传输\n- 优点:占用处理器引脚资源少\n- 缺点:传输速度相对较慢\n&lt;img src=\"./LV001-通信概述/img/image-20220918111415861.png\" alt=\"image-20220918111415861\" style=\"zoom:33%;\" /\n 2.并行通信\n"
      },
      {
        "url": "/sdoc/peripheral/watchdog/126b09043c29000296442c6e.html",
        "relativePath": "/sdoc/20-基本外设篇/20-看门狗/LV010-看门狗使用实例.html",
        "frontmatter": {
          "title": "LV010-看门狗使用实例",
          "date": "2025-09-22 07:31:29",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/watchdog/126b09043c29000296442c6e",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "296442c6e9ba4600b39cd12075ea87af",
            "useduuid": "296442c6e"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV010-看门狗使用实例",
        "date": "2025-09-22 07:31:29",
        "excerpt": "",
        "capture": "一、独立看门狗\n 1. 硬件设计\n独立看门狗属于 STM32F1 的内部资源,只需要软件设置好即可正常工作。我们通过LED灯来指示 STM32F1 的复位情况来看指示独立看门狗的喂狗情况。\n 2. STM32CubeMX配置  \n 2.1 IWDG配置\n&lt;img src=\"./LV010-看门狗使用实例/img/image-20230513193914903.png\" alt=\"image-20230513193914903\" style=\"zoom:80%;\" /\n独立看门狗的配置时间比较简单:\n①、选择IWDG;\n②、勾选Activated,表示启用独立看门狗;\n③、看门狗的时钟分频"
      },
      {
        "url": "/sdoc/peripheral/watchdog/126b09043ae916195cb39541.html",
        "relativePath": "/sdoc/20-基本外设篇/20-看门狗/LV001-看门狗简介.html",
        "frontmatter": {
          "title": "LV001-看门狗简介",
          "date": "2025-09-22 07:28:09",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/watchdog/126b09043ae916195cb39541",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "95cb3954118d49beb6d6912a9e3cb522",
            "useduuid": "95cb39541"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV001-看门狗简介",
        "date": "2025-09-22 07:28:09",
        "excerpt": "",
        "capture": "一、看门狗简介\n 1. 简介\n在由单片机构成的微型计算机系统中,由于单片机的工作常常会受到来自外界电磁场的干扰,造成程序的跑飞,而陷入死循环,程序的正常运行被打断,由单片机控制的系统无法继续工作,会造成整个系统的陷入停滞状态,发生不可预料的后果,所以出于对单片机运行状态进行实时监测的考虑,便产生了一种专门用于监测单片机程序运行状态的模块或者芯片,俗称“看门狗”(watchdog) 。\n看门狗主要用于解决什么问题呢?在启动正常运行的时候,系统不能复位。在系统跑飞(程序异常执行)的情况,系统复位,程序重新执行。看门狗的本质也是一个定时器,在启动后,需要在一定时间内再给它一个信号,俗称“喂狗”,如果"
      },
      {
        "url": "/sdoc/peripheral/timer/126b08f71bb31f61f9e3c819.html",
        "relativePath": "/sdoc/20-基本外设篇/15-定时器/LV105-自定义延时函数.html",
        "frontmatter": {
          "title": "LV105-自定义延时函数",
          "date": "2025-09-21 21:28:51",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/timer/126b08f71bb31f61f9e3c819",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "1f9e3c81978544cfa5b36e225514bb0d",
            "useduuid": "1f9e3c819"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV105-自定义延时函数",
        "date": "2025-09-21 21:28:51",
        "excerpt": "",
        "capture": "在20-基本外设篇/15-定时器/LV105-自定义延时函数.md中我们分析了HAL库中的HAL_Delay()函数,它是借助SysTick定时器的中断来实现的,就意味着不能在其他中断中使用这个延时函数,那么有没有其他办法实现延时?\n 一、时钟摘取法  \n我们来看一下正点原子SYSTEM目录下的delay.c中的delay_us函数。\n 1. delay_init()\n在main函数中是这样调用的:\n```c\ndelay_init(72);\n```\n这个函数的定义(删除了OS相关的内容)如下:\n```c\n/**\n * @brief     初始化延迟函数\n * @param     syscl"
      },
      {
        "url": "/sdoc/peripheral/timer/126b08f7176d34627620ad1b.html",
        "relativePath": "/sdoc/20-基本外设篇/15-定时器/LV100-SysTick定时器简介.html",
        "frontmatter": {
          "title": "LV100-SysTick定时器简介",
          "date": "2025-09-21 21:17:57",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/timer/126b08f7176d34627620ad1b",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "27620ad1b6704f3ab64b6bc4d14b88f4",
            "useduuid": "27620ad1b"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV100-SysTick定时器简介",
        "date": "2025-09-21 21:17:57",
        "excerpt": "",
        "capture": "这一部分我们可以查看Cortex-M3 权威指南的 第8章NVIC与中断控制 中的 SysTick定时器  小节。\n 一、SysTick定时器简介\nSysTick定时器(又名系统滴答定时器)是存在于Cortex-M3的一个定时器,只要是ARM Cotex-M系列内核的MCU都包含这个定时器。使用内核的SysTick定时器来实现延时,可以不占用系统定时器,节约资源。由于SysTick是在CPU核内部实现的,跟MCU外设无关, 因此它的代码可以在不同厂家之间移植。  \nSysTick定时器被捆绑在NVIC中,用于产生SYSTICK异常(异常号: 15)。在以前,大多操作系统需要一个硬件定时器来产生"
      },
      {
        "url": "/sdoc/peripheral/timer/126b08f6ae2512a51a9eec42.html",
        "relativePath": "/sdoc/20-基本外设篇/15-定时器/LV090-高级定时器PWM输入.html",
        "frontmatter": {
          "title": "LV090-高级定时器PWM输入",
          "date": "2025-09-21 18:48:05",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/timer/126b08f6ae2512a51a9eec42",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "51a9eec423e4412c99aa8247ccd2092d",
            "useduuid": "51a9eec42"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV090-高级定时器PWM输入",
        "date": "2025-09-21 18:48:05",
        "excerpt": "",
        "capture": "本小节我们来学习使用高级定时器 PWM 输入模式, 此模式是输入捕获模式的一个特例。PWM 输入模式经常被应用于测量 PWM 脉宽和频率。 PWM 输入模式在《STM32F10xxx 参考手册_V10(中文版) .pdf》 手册 216 页有详细的文字描述。\n 一、工作原理\n&lt;img src=\"./LV090-高级定时器PWM输入/img/image-20240114135116438.png\" alt=\"image-20240114135116438\" style=\"zoom:50%;\" /\n第一,确定定时器时钟源。本实验中我们使用内部时钟(CK_INT), F1 系列高级定时器挂载在"
      },
      {
        "url": "/sdoc/peripheral/timer/126b08f6ad8f2e0487d6c438.html",
        "relativePath": "/sdoc/20-基本外设篇/15-定时器/LV085-高级定时器互补输出.html",
        "frontmatter": {
          "title": "LV085-高级定时器互补输出",
          "date": "2025-09-21 18:46:55",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/timer/126b08f6ad8f2e0487d6c438",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "487d6c4384224a459898d149b83609e0",
            "useduuid": "487d6c438"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV085-高级定时器互补输出",
        "date": "2025-09-21 18:46:55",
        "excerpt": "",
        "capture": "一、基本概念\n什么是互补输出?还带死区控制?  我们来简单了解一下。关于互补输出和死区插入的更多内容可以看《STM32F10xxx 参考手册_V10(中文版) .pdf》手册的 13.3.11 小节 。\n 1. 互补输出\n&lt;img src=\"./LV085-高级定时器互补输出/img/image-20240114131925473.png\" alt=\"image-20240114131925473\" style=\"zoom:50%;\" /\n&lt;p align=\"center\"&gt;\n    图一-1 互补输出\n&lt;/p&gt;\n上图中, CH1 输出黄色的 PWM,它的互补通道"
      },
      {
        "url": "/sdoc/peripheral/timer/126b08f6aca0253099c9ba29.html",
        "relativePath": "/sdoc/20-基本外设篇/15-定时器/LV080-高级定时器输出比较模式.html",
        "frontmatter": {
          "title": "LV080-高级定时器输出比较模式",
          "date": "2025-09-21 18:44:16",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/timer/126b08f6aca0253099c9ba29",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "099c9ba29781487ab77ef3977ecd7122",
            "useduuid": "099c9ba29"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV080-高级定时器输出比较模式",
        "date": "2025-09-21 18:44:16",
        "excerpt": "",
        "capture": "一、输出比较模式输出PWM\n我们来学习使用高级定时器输出比较模式下翻转功能,通过定时器 4 个通道分别输出 4 个 50%占空比、不同相位的 PWM。\n输出比较模式下翻转功能作用是:当计数器的值等于捕获/比较寄存器影子寄存器的值时,OC1REF 发生翻转,进而控制通道输出(OCx)翻转。通过翻转功能实现输出 PWM 的具体原理如下: PWM 频率由自动重载寄存器(TIMx_ARR)的值决定,在这个过程中,只要自动重载寄存器的值不变,那么 PWM 占空比就固定为 50%。我们可以通过捕获/比较寄存器(TIMx_CCRx)的值改变 PWM 的相位。生成 PWM 的原理如图 :\n&lt;img sr"
      },
      {
        "url": "/sdoc/peripheral/timer/126b08f6ac4f2bb02b42403e.html",
        "relativePath": "/sdoc/20-基本外设篇/15-定时器/LV075-高级定时器PWM输出.html",
        "frontmatter": {
          "title": "LV075-高级定时器PWM输出",
          "date": "2025-09-21 18:43:35",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/timer/126b08f6ac4f2bb02b42403e",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "02b42403e6334b1e88b3aefe535488bf",
            "useduuid": "02b42403e"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV075-高级定时器PWM输出",
        "date": "2025-09-21 18:43:35",
        "excerpt": "",
        "capture": "一、基本原理\n要实现定时器输出指定个数 PWM,只需要掌握下面几点内容:\n- 第一,定时器是如何输出 PWM 的,这部分的知识和前面是一样的。但是需要注意的是:我们需要把 MOE 位置 1,这样高级定时器的通道才能输出。\n- 第二,要清楚重复计数器特性,设置重复计数器寄存器 RCR 的值为 N,那么更新事件将在定时器发生 N+1 次上溢或下溢时发生。换句话来说就是,想要指定输出 N 个 PWM,只需要把N-1 写入 RCR 寄存器。因为在边沿对齐模式下,定时器溢出周期对应着 PWM 周期,我们只要在更新事件发生时,停止输出 PWM 就行。\n- 第三,为了保证定时器输出指定个数的 PWM 后,定"
      },
      {
        "url": "/sdoc/peripheral/timer/126b08f6abf821065c6674f2.html",
        "relativePath": "/sdoc/20-基本外设篇/15-定时器/LV070-高级定时器简介.html",
        "frontmatter": {
          "title": "LV070-高级定时器简介",
          "date": "2025-09-21 18:42:48",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/timer/126b08f6abf821065c6674f2",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "65c6674f24194a5c905c5931e3b1bb25",
            "useduuid": "65c6674f2"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV070-高级定时器简介",
        "date": "2025-09-21 18:42:48",
        "excerpt": "",
        "capture": "从这一节开始主要来学习高级定时器, STM32F103 有 2 个高级定时器(TIM1 和 TIM8)。将会通过四个实验来学习高级定时器的各个功能,分别是高级定时器输出指定个数 PWM 实验、高级定时器输出比较模式实验、高级定时器互补输出带死区控制实验和高级定时器 PWM 输入模式实验。  \n 一、高级定时器框图\n高级定时器的框图和通用定时器框图很类似,只是添加了其它的一些功能,如:重复计数器、带死区控制的互补输出通道、断路输入等。这些功能在高级定时器框图的位置如下:  \n&lt;img src=\"./LV070-高级定时器简介/img/image-20240114124949607.png\""
      },
      {
        "url": "/sdoc/peripheral/timer/126b08f6ab873bc74e57e381.html",
        "relativePath": "/sdoc/20-基本外设篇/15-定时器/LV050-通用定时器脉冲计数.html",
        "frontmatter": {
          "title": "LV050-通用定时器脉冲计数",
          "date": "2025-09-21 18:41:35",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/timer/126b08f6ab873bc74e57e381",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "74e57e3815ac43a9b2ad64b853530fde",
            "useduuid": "74e57e381"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV050-通用定时器脉冲计数",
        "date": "2025-09-21 18:41:35",
        "excerpt": "",
        "capture": "前面我们介绍了通用定时器的四类时钟源,这一节我们来学习使用通用定时器的外部时钟模式 1 这类时钟源。我们通过脉冲计数实验来学习。\n 一、需求说明\n前面的三个通用定时器实验的时钟源都是来自内部时钟 (CK_INT),在脉冲计数的使用中我们将使用外部时钟模式 1:外部输入引脚 (TIx)作为定时器的时钟源。关于这个外部输入引脚(TIx),我们使用 WK_UP 按键按下产生的高电平脉冲作为定时器的计数器时钟,每按下一次按键产生一次高电平脉冲,计数器加一。  \n 二、定时器资源说明\n&lt;img src=\"./LV050-通用定时器脉冲计数/img/image-20240114104935667.p"
      },
      {
        "url": "/sdoc/peripheral/timer/126b08f6ab6404f5fdfb5648.html",
        "relativePath": "/sdoc/20-基本外设篇/15-定时器/LV045-通用定时器输入捕获.html",
        "frontmatter": {
          "title": "LV045-通用定时器输入捕获",
          "date": "2025-09-21 18:41:00",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/timer/126b08f6ab6404f5fdfb5648",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "5fdfb5648d1542adb31bc692aaebfac4",
            "useduuid": "5fdfb5648"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV045-通用定时器输入捕获",
        "date": "2025-09-21 18:41:00",
        "excerpt": "",
        "capture": "一、脉宽测量基本原理\n输入捕获模式可以用来测量脉冲宽度或者测量频率。我们以测量脉宽为例,用一个简图来说明输入捕获脉宽测量原理:\n&lt;img src=\"./LV045-通用定时器输入捕获/img/image-20240114103053113.png\" alt=\"image-20240114103053113\" style=\"zoom: 33%;\" /\nt1 到 t2 的时间段,就是我们需要测量的高电平时间。测量方法如下:假如定时器工作在递增计数模式,首先设置定时器通道 x 为上升沿捕获,这样在 t1 时刻上升沿到来时,就会发生捕获事件。这里我们还会打开捕获中断,所以捕获事件发生就意味着捕获"
      },
      {
        "url": "/sdoc/peripheral/timer/126b08f6aac20ab7bc66d777.html",
        "relativePath": "/sdoc/20-基本外设篇/15-定时器/LV040-通用定时器PWM输出.html",
        "frontmatter": {
          "title": "LV040-通用定时器PWM输出",
          "date": "2025-09-21 18:39:38",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/timer/126b08f6aac20ab7bc66d777",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "7bc66d777a344e838bab8b97634f96bc",
            "useduuid": "7bc66d777"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV040-通用定时器PWM输出",
        "date": "2025-09-21 18:39:38",
        "excerpt": "",
        "capture": "一、PWM产生原理\n脉冲宽度调制(PWM),是英文“Pulse Width Modulation”的缩写,简称脉宽调制,是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术。我们可以让定时器产生PWM,在计数器频率固定时, PWM 频率或者周期由自动重载寄存器(TIMx_ARR)的值决定,其占空比由捕获/比较寄存器(TIMx_CCRx)的值决定。 PWM 产生原理示意图如下图所示:  \n&lt;img src=\"./LV040-通用定时器PWM输出/img/image-20240114095044325.png\" alt=\"image-20240114095044325\" styl"
      },
      {
        "url": "/sdoc/peripheral/timer/126b08f6aa9f293ebbce26b2.html",
        "relativePath": "/sdoc/20-基本外设篇/15-定时器/LV035-通用定时器的中断.html",
        "frontmatter": {
          "title": "LV035-通用定时器的中断",
          "date": "2025-09-21 18:39:03",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/timer/126b08f6aa9f293ebbce26b2",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "ebbce26b2eed4f0e8e7db13c33566c30",
            "useduuid": "ebbce26b2"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV035-通用定时器的中断",
        "date": "2025-09-21 18:39:03",
        "excerpt": "",
        "capture": "一、相关寄存器\n我们来学习使用通用定时器中断,学习 TIM2/TIM3/TIM4/TIM5 的几个与定时器中断相关且重要的寄存器。主要以定时器3为例。\n 1. 控制寄存器 1(TIMx_CR1)\nTIM2/TIM3/TIM4/TIM5 的控制寄存器 1 描述如图:\n&lt;img src=\"./LV035-通用定时器的中断/img/image-20240114094348633.png\" alt=\"image-20240114094348633\" style=\"zoom:50%;\" /\n上图中只截出了中断需要用的一些位,其中:  \n位 7(APRE)用于控制自动重载寄存器是否进行缓冲,如果 A"
      },
      {
        "url": "/sdoc/peripheral/timer/126b08f6aa441b536809798e.html",
        "relativePath": "/sdoc/20-基本外设篇/15-定时器/LV030-通用定时器简介.html",
        "frontmatter": {
          "title": "LV030-通用定时器简介",
          "date": "2025-09-21 18:38:12",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/timer/126b08f6aa441b536809798e",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "36809798e68046309b813b9706a23f8a",
            "useduuid": "36809798e"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV030-通用定时器简介",
        "date": "2025-09-21 18:38:12",
        "excerpt": "",
        "capture": "一、STM32的通用定时器\nSTM32F103 的通用定时器有 4 个,如下所示:  \n&lt;img src=\"./LV030-通用定时器简介/img/image-20240114085044691.png\" alt=\"image-20240114085044691\" /\n该表可以参考《STM32数据手册》的2.3.17 Timers and watchdogs小节。由上表知道: 该 STM32 芯片的计数器都是 16 位的。 通用定时器和高级定时器其实也就是在基本定时器的基础上,添加了一些其他功能,如: 输入捕获、 输出比较、输出 PWM 和单脉冲模式等。 而通用定时器数量较多,其特性也有"
      },
      {
        "url": "/sdoc/peripheral/timer/basic/126b08f6a8e32e3427f3a2b2.html",
        "relativePath": "/sdoc/20-基本外设篇/15-定时器/LV001-基本定时器简介.html",
        "frontmatter": {
          "title": "LV001-基本定时器简介",
          "date": "2025-09-21 18:34:59",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/timer/basic/126b08f6a8e32e3427f3a2b2",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "427f3a2b26fc476299e1f6f52f2c33ad",
            "useduuid": "427f3a2b2"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV001-基本定时器简介",
        "date": "2025-09-21 18:34:59",
        "excerpt": "",
        "capture": "一、基本定时器简介\n 1. STM32的基本定时器\nSTM32F103 有两个基本定时器 TIM6 和 TIM7,它们的功能完全相同,资源是完全独立的,可以同时使用。其主要特性如下: 16 位自动重载递增计数器, 16 位可编程预分频器,预分频系数 1\\~65536,用于对计数器时钟频率进行分频,还可以触发 DAC 的同步电路,以及生成中断/DMA 请求。  \n 2. 基本定时器框图  \n&lt;img src=\"./LV001-基本定时器简介/img/image-20240114083136570.png\" alt=\"image-20240114083136570\" style=\"zoom:"
      },
      {
        "url": "/sdoc/peripheral/uart/126b08f61664097f4a0617fc.html",
        "relativePath": "/sdoc/20-基本外设篇/10-UART/LV020-串口收发实例.html",
        "frontmatter": {
          "title": "LV020-串口收发实例",
          "date": "2025-09-21 14:59:56",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/uart/126b08f61664097f4a0617fc",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "f4a0617fc94447a8962e262d9db98842",
            "useduuid": "f4a0617fc"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV020-串口收发实例",
        "date": "2025-09-21 14:59:56",
        "excerpt": "",
        "capture": "一、串口打印实现\n说明,这里使用STM32CubeM进行配置和导出工程。\n 1. 硬件设计\n我使用的是正点原子的战舰V3,串口部分电路如下,串口 1 与 USB 串口并没有在 PCB 上连接在一起,需要通过跳线帽来连接一下。这里我们把 P4 的 RXD 和 TXD 用跳线帽与 PA9 和 PA10 连接起来。  \n&lt;img src=\"./LV020-串口收发实例/img/image-20230502122716375.png\" alt=\"image-20230502122716375\" style=\"zoom: 67%;\" /\n 2. STM32CubeMX配置\n注意这里的时钟都没配置,"
      },
      {
        "url": "/sdoc/peripheral/uart/126b08f6146d2d238b102738.html",
        "relativePath": "/sdoc/20-基本外设篇/10-UART/LV010-STM32的串口.html",
        "frontmatter": {
          "title": "LV010-STM32的串口",
          "date": "2025-09-21 14:54:53",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/uart/126b08f6146d2d238b102738",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "38b1027380d146cb959e571687931c97",
            "useduuid": "38b102738"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV010-STM32的串口",
        "date": "2025-09-21 14:54:53",
        "excerpt": "",
        "capture": "一、STM32的串口\n 1. 概述\n在嵌入式中,很多MCU和外设模块都集成有UART外设。 STM32F103有3个通用同步异步收发器( Universal synchronous asynchronous receiver transmitter, USART), 2个通用异步收发器( Universalasynchronous receiver transmitter, UART) 。 USART和UART的主要区别在于, USART支持同步通信, 该模式有一根时钟线提供时钟。这里需要说明一下,由于在STM中文或者是英文参考手册,相关的介绍章节主要是关于USART,但是他们都是通用的,所以"
      },
      {
        "url": "/sdoc/peripheral/uart/126b08f60edb3b6ac7962cbf.html",
        "relativePath": "/sdoc/20-基本外设篇/10-UART/LV001-串口通信简介.html",
        "frontmatter": {
          "title": "LV001-串口通信简介",
          "date": "2025-09-21 14:40:27",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/uart/126b08f60edb3b6ac7962cbf",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "ac7962cbf7d245659539f5436bb59e37",
            "useduuid": "ac7962cbf"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV001-串口通信简介",
        "date": "2025-09-21 14:40:27",
        "excerpt": "",
        "capture": "一、数据通信\n在单片机的应用中,数据通信是必不可少的一部分,比如:单片机和上位机、单片机和外围器件之间,它们都有数据通信的需求。由于设备之间的电气特性、传输速率、可靠性要求各不相同,于是就有了各种通信类型、通信协议,我们最常的有: USART、 IIC、 SPI、 CAN、 USB等。\n 1. 数据通信方式\n按数据通信方式分类,可分为串行通信和并行通信两种。串行和并行的对比如下图所示:  \n串行通信的基本特征是数据逐位顺序依次传输,优点是传输线少、 布线成本低、 灵活度高等优点,一般用于近距离人机交互, 特殊处理后也可以用于远距离, 缺点就是传输速率低。而并行通信是数据各位可以通过多条线同时传"
      },
      {
        "url": "/sdoc/basic/stm32clock/126b08f5dcd1392ef8558043.html",
        "relativePath": "/sdoc/10-基础篇/40-STM32时钟/LV010-STM32F1的SYSCLK.html",
        "frontmatter": {
          "title": "LV010-STM32F1的SYSCLK",
          "date": "2025-09-21 13:12:17",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/basic/stm32clock/126b08f5dcd1392ef8558043",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "ef8558043211434e9696dd7586e40951",
            "useduuid": "ef8558043"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV010-STM32F1的SYSCLK",
        "date": "2025-09-21 13:12:17",
        "excerpt": "<p>这一部分我们来详细了解一下系统时钟SYSCLK。</p>\n",
        "capture": "这一部分我们来详细了解一下系统时钟SYSCLK。\n 一、PLL 作为系统时钟源  \n在 STM32 中, 锁相环的输出也可以作为芯片系统的时钟源。 根据STM32F1的时钟结构,使用锁相环时只需要进行三个部分的配置。为了方便查看,这里直接截取STM32CubeMX中时钟树中使用 PLL 作为系统时钟源的配置部分,  \n- PLLXTPRE: HSE 分频器作为 PLL 输入 (HSE divider for PLL entry)  \n即图 11.1.2.1 在标注为①的地方, 它专门用于 HSE, ST 设计它有两种方式,并把它的控制功能放在 RCC_CFGR 寄存器中, 我们引用如图:\n从 "
      },
      {
        "url": "/sdoc/basic/stm32clock/126b08f5d89727a6ee395582.html",
        "relativePath": "/sdoc/10-基础篇/40-STM32时钟/LV001-STM32F1时钟系统.html",
        "frontmatter": {
          "title": "LV001-STM32F1时钟系统",
          "date": "2025-09-21 13:01:35",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/basic/stm32clock/126b08f5d89727a6ee395582",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "6ee395582b8f401e806f3f6b8aac7e4a",
            "useduuid": "6ee395582"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV001-STM32F1时钟系统",
        "date": "2025-09-21 13:01:35",
        "excerpt": "",
        "capture": "一、STM32时钟树概述\n 1. 时钟系统\n时钟系统是由振荡器(信号源)、定时唤醒器、分频器等组成的电路。常用的信号源有晶体振荡器和RC振荡器。\n时钟是嵌入式系统的脉搏,处理器内核在时钟驱动下完成指令执行,状态变换等动作,外设部件在时钟的驱动下完成各种工作,比如串口数据的发送、A/D转换、定时器计数等等。因此时钟对于计算机系统是至关重要的,通常时钟系统出现问题也是致命的,比如振荡器不起振、振荡不稳、停振等。\n&lt;img src=\"./LV001-STM32F1时钟系统/img/image-20230502201120397.png\" alt=\"image-20230502201120397"
      },
      {
        "url": "/sdoc/peripheral/gpio/126b08f596281cc89a3bc4c6.html",
        "relativePath": "/sdoc/20-基本外设篇/01-GPIO/LV045-外部中断实例.html",
        "frontmatter": {
          "title": "LV045-外部中断实例",
          "date": "2025-09-21 11:31:28",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/gpio/126b08f596281cc89a3bc4c6",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "89a3bc4c6a9b4249afce4152ca5d1241",
            "useduuid": "89a3bc4c6"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV045-外部中断实例",
        "date": "2025-09-21 11:31:28",
        "excerpt": "",
        "capture": "一、硬件原理图\n&lt;img src=\"./LV045-外部中断实例/img/image-20230501153706041.png\" alt=\"image-20230501153706041\" style=\"zoom: 67%;\" /\n 二、STM32CubeMX配置\n 1. GPIO引脚配置\n在STM32CubeMX软件中,我们选择好引脚后,GPIO的功能中会自动对应好与EXIT的关系,当然,我们也可以看 STM32中文参考手册的 9.2.5 外部中断/事件线路映像一节。\n(1)PA0 所接按键按下时为高电平,默认时我们设置为下拉,也就是默认时低电平:\n&lt;img src=\"./LV"
      },
      {
        "url": "/sdoc/peripheral/gpio/126b08f58a5c2c09e1d6100f.html",
        "relativePath": "/sdoc/20-基本外设篇/01-GPIO/LV040-外部中断.html",
        "frontmatter": {
          "title": "LV040-外部中断",
          "date": "2025-09-21 11:01:08",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/gpio/126b08f58a5c2c09e1d6100f",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "9e1d6100f7d74737974bd9674a8ba8c0",
            "useduuid": "9e1d6100f"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV040-外部中断",
        "date": "2025-09-21 11:01:08",
        "excerpt": "",
        "capture": "&gt;\n&gt;- 10-基础篇/30-STM32的中断/LV001-STM32中断简介.md\n&gt;- 10-基础篇/01-概述/LV040-CortexM3异常.md\n 一、EXTI\n 1. 简介\nSTM32的中断和中断优先级,知道了所有外设中断都由NVIC管理,比如USART、 ADC、 I2C、 SPI等。 GPIO产生的中断也不例外,但在给NVIC管理之前,还有一个EXTI( External interrupt/event controller,外部中断/事件控制器) 先处理一下 :\n&lt;img src=\"./LV040-外部中断/img/image-20230501150"
      },
      {
        "url": "/sdoc/basic/stm32interrupt/126b08f57241322fa604782d.html",
        "relativePath": "/sdoc/10-基础篇/30-STM32的中断/LV001-STM32中断简介.html",
        "frontmatter": {
          "title": "LV001-STM32中断简介",
          "date": "2025-09-21 10:39:37",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/basic/stm32interrupt/126b08f57241322fa604782d",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "fa604782d9e94117829d0f1a00c0d99d",
            "useduuid": "fa604782d"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV001-STM32中断简介",
        "date": "2025-09-21 10:39:37",
        "excerpt": "",
        "capture": "一、基本概念\n生活中,有这样一个场景,我现在正在看电视剧,然后这个时候突然有人敲门,我该怎么做?正常我们应该是暂停电视剧,然后去开门,处理有人敲门这件事,这件事处理完后,回到电视机前,继续看电视剧,这就是一个中断。\n在处理器中,中断是一个过程,即CPU在正常执行程序的过程中,遇到外部/内部的紧急事件需要处理,暂时中止当前程序的执行,转而去为处理紧急的事件,待处理完毕后再返回被打断的程序处继续往下执行。中断在计算机多任务处理,尤其是即时系统中尤为重要。比如uCOS,FreeRTOS等。\n中断存在的意义就在于中断能提高CPU的效率,同时能对突发事件做出实时处理。实现程序的并行化,实现嵌入式系统进程"
      },
      {
        "url": "/sdoc/peripheral/gpio/126b08e8078f1f2b7ad1d6a6.html",
        "relativePath": "/sdoc/20-基本外设篇/01-GPIO/LV030-按键检测.html",
        "frontmatter": {
          "title": "LV030-按键检测",
          "date": "2025-09-20 22:46:55",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/gpio/126b08e8078f1f2b7ad1d6a6",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "b7ad1d6a65df41fab1ae6bd4b2de28b9",
            "useduuid": "b7ad1d6a6"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV030-按键检测",
        "date": "2025-09-20 22:46:55",
        "excerpt": "",
        "capture": "一、基本步骤\n- (1)使能IO口时钟。\n- (2)初始化IO口模式,包括GPIO工作模式(输入)、IO口速度。\n- (3)循环读取IO电平,判断按键是否按下。\n 二、硬件原理图\n&lt;img src=\"./LV030-按键检测/img/image-20230506221837788.png\" alt=\"image-20230506221837788\" style=\"zoom:50%;\" /\n 三、STM32CubeMX配置\n&lt;img src=\"./LV030-按键检测/img/image-20230506222110861.png\" alt=\"image-20230506222110"
      },
      {
        "url": "/sdoc/peripheral/gpio/126b08e805ca1e15c40474c4.html",
        "relativePath": "/sdoc/20-基本外设篇/01-GPIO/LV020-GPIO控制LED.html",
        "frontmatter": {
          "title": "LV020-GPIO控制LED",
          "date": "2025-09-20 22:42:02",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/gpio/126b08e805ca1e15c40474c4",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "5c40474c47fc44e49114f4489f7fb359",
            "useduuid": "5c40474c4"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV020-GPIO控制LED",
        "date": "2025-09-20 22:42:02",
        "excerpt": "",
        "capture": "一、基本步骤\n这个实例主要是通过GPIO点亮LED灯。一般步骤如下:\n- (1)使能IO口时钟。\n- (2)初始化IO口模式,包括GPIO工作模式(输出)、IO口速度。使用STM32CubeMX软件来进行图形化配置的话要注意一下上下拉的设置,不然很可能有莫名其妙的坑。\n- (3)操作IO口,输出高低电平。\n【注意】可以一次初始化一个IO组下的多个IO,前提是这些IO口的配置方式一样。\n 二、硬件原理图\n&lt;img src=\"./LV020-GPIO控制LED/img/image-20230506221050587.png\" alt=\"image-20230506221050587\" sty"
      },
      {
        "url": "/sdoc/peripheral/gpio/126b08e804d303ad5b541ecd.html",
        "relativePath": "/sdoc/20-基本外设篇/01-GPIO/LV010-输入输出模式详解.html",
        "frontmatter": {
          "title": "LV010-输入输出模式详解",
          "date": "2025-09-20 22:39:55",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/gpio/126b08e804d303ad5b541ecd",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "d5b541ecde0f4e1799e17d09e88a33fa",
            "useduuid": "d5b541ecd"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV010-输入输出模式详解",
        "date": "2025-09-20 22:39:55",
        "excerpt": "",
        "capture": "这篇笔记主要是详细学习一下GPIO输入输出各种模式(推挽、开漏、准双向端口)。\n 一、概述\n 1. IO模式说明\n概括地说,IO的功能模式大致可以分为输入、输出以及输入输出双向三大类。其中作为基本输入IO,相对比较简单,主要涉及的知识点就是高阻态;作为输出IO,相比于输入复杂一些,工作模式主要有开漏(Open Drain)模式和推挽(Push-Pull)模式,这一部分涉及的知识点比较多;对于输入输出IO,容易产生疑惑的地方是准双向和双向端口的区别。\n 2. MOS管基础\n这里学习一下P-MOS和N-MOS导通的条件,前面后边都给我整糊涂了,这里记录一下,如下图为P-MOS和N-MOS导通时的电"
      },
      {
        "url": "/sdoc/peripheral/gpio/126b08e802d21f6e4f658296.html",
        "relativePath": "/sdoc/20-基本外设篇/01-GPIO/LV001-STM32的GPIO简介.html",
        "frontmatter": {
          "title": "LV001-STM32的GPIO简介",
          "date": "2025-09-20 22:34:42",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/peripheral/gpio/126b08e802d21f6e4f658296",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "e4f658296d8f440694a80e81f31777d4",
            "useduuid": "e4f658296"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV001-STM32的GPIO简介",
        "date": "2025-09-20 22:34:42",
        "excerpt": "",
        "capture": "一、GPIO简介\nGPIO是通用输入输出端口的简称,简单来说就是STM32可控制的引脚,STM32芯片的GPIO引脚与外部设备连接起来,从而实现与外部通讯、控制以及数据采集的功能。 STM32芯片的GPIO被分成很多组,每组有16个引脚(也有可能少于16个),如型号为STM32F103ZET6型号的芯片有GPIOA、GPIOB、GPIOC至GPIOG共7组GPIO,一共就有16x7=112个IO,该芯片一共144个引脚,其中GPIO引脚就占了一大部分,所有的GPIO引脚都有基本的输入输出功能。\n最基本的输出功能是由STM32控制引脚输出高、低电平,实现开关控制,如把GPIO引脚接入到LED灯,"
      },
      {
        "url": "/sdoc/basic/stm32setup/126b08e7afad049a561ccf1b.html",
        "relativePath": "/sdoc/10-基础篇/20-STM32的启动/LV010-在内部SRAM调试.html",
        "frontmatter": {
          "title": "LV010-在内部SRAM调试",
          "date": "2025-09-20 20:21:57",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/basic/stm32setup/126b08e7afad049a561ccf1b",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "a561ccf1b5d3443c85b0f21280803c3a",
            "useduuid": "a561ccf1b"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV010-在内部SRAM调试",
        "date": "2025-09-20 20:21:57",
        "excerpt": "",
        "capture": "一、在RAM中调试代码\n 1. 简介\n一般情况下,我们在 MDK 中编写工程应用后,调试时都是把程序下载到芯片的内部 FLASH 运行测试的,代码的 CODE 及 RW-data 的内容被写入到内部 FLASH 中存储。但在某些应用场合下却不希望或不能修改内部 FLASH 的内容,这时就可以使用 RAM 调试功能了,它的本质是把原来存储在内部 FLASH 的代码 (CODE 及 RW-data 的内容) 改为存储到 SRAM 中 (内部 SRAM 或外部 SDRAM 均可),芯片复位后从 SRAM 中加载代码并运行。 \n 2. 优缺点\n把代码下载到 RAM 中调试有如下优点 :\n(1)下载程序"
      },
      {
        "url": "/sdoc/basic/stm32setup/126b08e78de70b59cd9ba362.html",
        "relativePath": "/sdoc/10-基础篇/20-STM32的启动/LV005-启动过程.html",
        "frontmatter": {
          "title": "LV005-启动过程",
          "date": "2025-09-20 19:35:11",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/basic/stm32setup/126b08e78de70b59cd9ba362",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "9cd9ba36208d49f99352645293a0d904",
            "useduuid": "9cd9ba362"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV005-启动过程",
        "date": "2025-09-20 19:35:11",
        "excerpt": "",
        "capture": "这一部分主要是分析STM32的启动流程,我们将会接触到内部FLASH的相关内容。\n 一、内部FLASH\n这里了解一下内部Flash的一些内容,并不涉及对内部Flash读写等相关操作。\n 1. FLASH简介\nflash是存储芯片的一种,通过特定的程序可以修改里面的数据。FLASH在电子以及半导体领域内往往表示 Flash Memory 的意思,即平时所说的“闪存”,全名叫 Flash EEPROM Memory。它结合了ROM和RAM的长处,不仅具备电子可擦除可编程(EEPROM)的性能,还可以快速读取数据(NVRAM的优势),使数据不会因为断电而丢失。\n在STM32芯片内部有一个FLASH存"
      },
      {
        "url": "/sdoc/basic/stm32setup/126b08e788e83383285742cb.html",
        "relativePath": "/sdoc/10-基础篇/20-STM32的启动/LV001-启动文件.html",
        "frontmatter": {
          "title": "LV001-启动文件",
          "date": "2025-09-20 19:22:32",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/basic/stm32setup/126b08e788e83383285742cb",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "3285742cb8d24fba98867646d8e8231b",
            "useduuid": "3285742cb"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV001-启动文件",
        "date": "2025-09-20 19:22:32",
        "excerpt": "",
        "capture": "这一节我们来分析一下MDK工程中的STM32启动文件。\n 一、启动方式\n- 参考10-基础篇/20-STM32的启动/LV005-启动过程.md和Cortex-M3 权威指南的3.8 复位序列\n在离开复位状态后,CM3做的第一件事就是读取下列两个32位整数的值:\n(1)从地址0x0000,0000处取出MSP的初始值。 \n(2)从地址0x0000,0004 处取出PC的初始值——这个值是复位向量,LSB必须是1。然后从这个值所对应的地址处取指。 \n&lt;img src=\"./LV001-启动文件/img/image-20250924071704950.png\" alt=\"image-2025"
      },
      {
        "url": "/sdoc/basic/stm32basic/126b08e7828f108bc0b2f2dc.html",
        "relativePath": "/sdoc/10-基础篇/10-STM32基础/LV030-STM32程序下载.html",
        "frontmatter": {
          "title": "LV030-STM32程序下载",
          "date": "2025-09-20 19:06:07",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/basic/stm32basic/126b08e7828f108bc0b2f2dc",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "bc0b2f2dc98042cb8e44dc7aa1995faa",
            "useduuid": "bc0b2f2dc"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV030-STM32程序下载",
        "date": "2025-09-20 19:06:07",
        "excerpt": "",
        "capture": "一、创建MDK工程\n- 参考:01-开发工具/01-keil/LV002-工程创建.md\n其中MDK版本和芯片支持包的版本如下:\n- 参考:01-开发工具/02-STM32Cube/LV002-STM32CubeMX工程创建.md\nSTM32CubeMX的版本如下:\n&lt;img src=\"./LV030-STM32程序下载/img/image-20250920223052679.png\" alt=\"image-20250920223052679\" style=\"zoom:50%;\" /\n 二、生成hex文件\n首先当然是生成成果物文件啦,我们使用MDK编写完程序后,要生成一个可以下载到开发板"
      },
      {
        "url": "/sdoc/dev-tool/keil/126b08e76d70287e70afead6.html",
        "relativePath": "/sdoc/01-开发工具/01-keil/LV040-在线调试.html",
        "frontmatter": {
          "title": "LV040-在线调试",
          "date": "2025-09-20 18:52:00",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/dev-tool/keil/126b08e76d70287e70afead6",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "e70afead6dd14692ad3b3749eb2cad4d",
            "useduuid": "e70afead6"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV040-在线调试",
        "date": "2025-09-20 18:52:00",
        "excerpt": "",
        "capture": "有了J-Link或者ST-Link,我们就可以在线调试代码,这里以我我使用的J-Link为例,简单介绍一下界面,后边的功能就自己摸索吧。\n 一、连接与配置\n最开始肯定是连接好J-Link、电脑和开发板啦,然后就是MDK工程的配置,这个可以看前边J-Link的使用。\n- 01-开发工具/10-下载与调试/LV002-JLink怎么使用.md\n- 01-开发工具/10-下载与调试/LV015-STLink怎么使用.md\n 二、开始在线调试\n 1. 启动\n我们可以点击工具栏的这个按钮进入调试,或者就是从菜单栏【Debug】&rarr;【Start/Stop Debug Session】启动:\n&lt"
      },
      {
        "url": "/sdoc/dev-tool/keil/126b08e6f2e40a653e71bc02.html",
        "relativePath": "/sdoc/01-开发工具/02-STM32Cube/LV015-LD链接脚本.html",
        "frontmatter": {
          "title": "LV040-LD链接脚本",
          "date": "2025-09-20 15:38:28",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/dev-tool/keil/126b08e6f2e40a653e71bc02",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "53e71bc02dd346aeac5749700b205317",
            "useduuid": "53e71bc02"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV040-LD链接脚本",
        "date": "2025-09-20 15:38:28",
        "excerpt": "<p>这篇笔记主要是STM32CubeMX软件生成的STM32F103ZETx_FLASH.ld链接文件的学习笔记。这篇笔记按照顺序从上到下分析STM32F103ZETx_FLASH.ld文件。关于GNU链接脚本的详细语法我们可以参考这里:<a href=\"https://sourceware.org/binutils/docs/\" target=\"_blank\" rel=\"noreferrer\">Documentation for binutils 2.40 (sourceware.org)</a>,这里好像还有在线的文档。**【注意】**生成Makefile文件的话,链接脚本是自动生成的,并且每一次重新生成的时候,<strong>链接脚本将会重新生成</strong>,也就是说,若是我们修改了链接脚本内容的话,只要我们通过STM32CubeMX更新工程,我们修改的部分都会被删除。</p>\n",
        "capture": "这篇笔记主要是STM32CubeMX软件生成的STM32F103ZETx_FLASH.ld链接文件的学习笔记。这篇笔记按照顺序从上到下分析STM32F103ZETx_FLASH.ld文件。关于GNU链接脚本的详细语法我们可以参考这里:Documentation for binutils 2.40 (sourceware.org),这里好像还有在线的文档。【注意】生成Makefile文件的话,链接脚本是自动生成的,并且每一次重新生成的时候,链接脚本将会重新生成,也就是说,若是我们修改了链接脚本内容的话,只要我们通过STM32CubeMX更新工程,我们修改的部分都会被删除。\n 一、参考资料\n关于链"
      },
      {
        "url": "/sdoc/dev-tool/stm32cube/126b08e6f0211b46eabe9106.html",
        "relativePath": "/sdoc/01-开发工具/02-STM32Cube/LV030-STM32CubeIDE.html",
        "frontmatter": {
          "title": "LV030-STM32CubeIDE",
          "date": "2025-09-20 15:31:21",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/dev-tool/stm32cube/126b08e6f0211b46eabe9106",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "6eabe9106e39465d81b7853e19f74deb",
            "useduuid": "6eabe9106"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV030-STM32CubeIDE",
        "date": "2025-09-20 15:31:21",
        "excerpt": "",
        "capture": "一、STM32CubeIDE简介\n偶然看到STM32CubeIDE这个么一个软件,它是ST官方推出的IDE,它已经集成了芯片选型,外设配置,代码生成,代码编译,程序烧录和程序调试等一系列功能,可以说STM32CubeMX是它的其中一个功能而已。这里对这个软件做一个简单的了解。\n 1. 简介\nSTM32CubeIDE是一种高级C/C++开发平台,具有STM32微控制器和微处理器的外设配置、代码生成、代码编译和调试功能。它基于Eclipse®/CDT™框架和用于开发的GCC工具链,以及用于调试的GDB。它支持集成数以百计的现有插件,正是这些插件使Eclipse® IDE的功能趋于完整。\nSTM32"
      },
      {
        "url": "/sdoc/dev-tool/stm32cube/126b08e6ef7626b7c442bfe2.html",
        "relativePath": "/sdoc/01-开发工具/02-STM32Cube/LV012-Makefile文件分析.html",
        "frontmatter": {
          "title": "LV012-Makefile文件分析",
          "date": "2025-09-20 15:29:50",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/dev-tool/stm32cube/126b08e6ef7626b7c442bfe2",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "7c442bfe2f7348608819bf852cebb54e",
            "useduuid": "7c442bfe2"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV012-Makefile文件分析",
        "date": "2025-09-20 15:29:50",
        "excerpt": "",
        "capture": "这篇笔记主要是STM32CubeMX软件生成的Makefile文件的学习笔记。这篇笔记按照顺序从上到下分析Makefile文件。\n 一、完整的Makefile文件\n```makefile\n File automatically-generated by tool: [projectgenerator] version: [3.19.2] date: [Thu Apr 27 16:55:10 CST 2023] \n ------------------------------------------------\n Generic Makefile (based on gcc)\n ChangeLo"
      },
      {
        "url": "/sdoc/dev-tool/stm32cube/126b08e6edcf211c7df7916d.html",
        "relativePath": "/sdoc/01-开发工具/02-STM32Cube/LV010-Makefile管理工程.html",
        "frontmatter": {
          "title": "LV010-Makefile管理工程",
          "date": "2025-09-20 15:25:27",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/dev-tool/stm32cube/126b08e6edcf211c7df7916d",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "c7df7916d51c40f295ec8bdf0e20a228",
            "useduuid": "c7df7916d"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV010-Makefile管理工程",
        "date": "2025-09-20 15:25:27",
        "excerpt": "",
        "capture": "一、STM32CubeMX生成工程\n 1. 生成Makefile\n前边我们已经熟悉了一下STM32CubeMX软件的使用方法,以及创建和导出MDK工程的过程,接下来我们创建一个含有Makefile文件的工程。\n- (1)【File】&rarr;【New Project】\n&lt;img src=\"./LV010-Makefile管理工程/img/image-20230419232250397.png\" alt=\"image-20230419232250397\"  /\n- (2)【选择芯片型号】&rarr;【Start Project】\n&lt;img src=\"./LV010-Makefile"
      },
      {
        "url": "/sdoc/dev-tool/keil/126b08e6d335070a7fd1934d.html",
        "relativePath": "/sdoc/01-开发工具/01-keil/LV025-SCT文件应用.html",
        "frontmatter": {
          "title": "LV025-SCT文件应用",
          "date": "2025-09-20 14:57:17",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/dev-tool/keil/126b08e6d335070a7fd1934d",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "a7fd1934dbcb4eef93f57d3dce4e0059",
            "useduuid": "a7fd1934d"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV025-SCT文件应用",
        "date": "2025-09-20 14:57:17",
        "excerpt": "",
        "capture": "这一篇笔记主要是通过SCT文件来实现变量的分配位置,这里需要后边FSMC驱动SRAM的知识。由于内存管理对应用程序非常重要,若修改 sct 文件,不使用默认配置,对工程影响非常大,容易导致出错,所以我们这里也是跟着教程做了两个实验,来学习 sct 文件的应用细节。\n\n 一、自定义SCT文件\n注意这里我们要根据上一节笔记,取消MDK使用默认的SCT文件。\n&lt;img src=\"./LV025-SCT文件应用/img/image-20230529215228408.png\" alt=\"image-20230529215228408\" style=\"zoom: 50%;\" /&gt;\n在 MDK"
      },
      {
        "url": "/sdoc/dev-tool/keil/126b08e6cfb5032dbc05b46a.html",
        "relativePath": "/sdoc/01-开发工具/01-keil/LV020-SCT分散加载文件.html",
        "frontmatter": {
          "title": "LV020-SCT分散加载文件",
          "date": "2025-09-20 14:48:21",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/dev-tool/keil/126b08e6cfb5032dbc05b46a",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "dbc05b46abca47d8a176762f5148dc50",
            "useduuid": "dbc05b46a"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV020-SCT分散加载文件",
        "date": "2025-09-20 14:48:21",
        "excerpt": "",
        "capture": "这里继续学习MDK的工程文件`*.sct`,使用的工程呢可以去这里下载:ebf_stm32f103_badao_std_code: 野火STM32F103 霸道开发板 标准库教程配套代码 (gitee.com)\n\n 一、sct分散加载文件简介\n当工程按默认配置构建时,MDK会根据我们选择的芯片型号,获知芯片的内部FLASH及内部SRAM存储器概况,生成一个以工程名命名的后缀为\\*.sct的分散加载文件(Linker Control File,scatter loading),链接器根据该文件的配置分配各个节区地址,生成分散加载代码,因此我们通过修改该文件可以定制具体节区的存储位置。例如,我们可"
      },
      {
        "url": "/sdoc/dev-tool/keil/126b08e6a9c4187125e57a5f.html",
        "relativePath": "/sdoc/01-开发工具/01-keil/LV010-程序与编译.html",
        "frontmatter": {
          "title": "LV010-程序与编译",
          "date": "2025-09-20 13:51:08",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/dev-tool/keil/126b08e6a9c4187125e57a5f",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "125e57a5ff854ebaa58b6fff51b99a11",
            "useduuid": "125e57a5f"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV010-程序与编译",
        "date": "2025-09-20 13:51:08",
        "excerpt": "",
        "capture": "一、编译过程\n 1. 编译过程简介\n我们简单了解下MDK的编译过程,它与其它编译器的工作过程是类似的:\n&lt;img src=\"./LV010-程序与编译/img/MDK002.jpg\" alt=\"MDK编译过程\" style=\"zoom: 67%;\" /\n(1) 编译,MDK软件使用的编译器是 armcc 和 armasm , 它们根据每个C/C++和汇编源文件编译成对应的以“ .o ”为后缀名的对象文件(Object Code,也称目标文件), 其内容主要是从源文件编译得到的机器码,包含了代码、数据以及调试使用的信息;\n(2) 链接, 链接器 armlink 把各个 .o 文件及库文件链"
      },
      {
        "url": "/sdoc/basic/overview/126b08e6a7051c291c1151a6.html",
        "relativePath": "/sdoc/10-基础篇/01-概述/LV022-CortexM0存储器映射.html",
        "frontmatter": {
          "title": "LV022-CortexM0存储器映射",
          "date": "2025-09-20 13:44:05",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/basic/overview/126b08e6a7051c291c1151a6",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "91c1151a6b3c4a07b26e0383912b8543",
            "useduuid": "91c1151a6"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV022-CortexM0存储器映射",
        "date": "2025-09-20 13:44:05",
        "excerpt": "",
        "capture": "一、存储器映射\n后面学习STM32的存储器映射的时候,有用到过M0架构的STM32F05x系列芯片,部分笔记记录在这里:\n&lt;img src=\"./LV022-CortexM0存储器映射/img/image-20230409205001077.png\" alt=\"image-20230409205001077\" style=\"zoom:33%;\" /\n被控单元的FLASH,RAM和AHB到APB的桥(即片上外设),这些功能部件共同排列在一个 4GB 的地址空间内。我们在编程的时候,可以通过他们的地址找到他们,然后来操作他们。存储器本身没有地址,给存储器分配地址的过程叫存储器映射。\n&lt;"
      },
      {
        "url": "/sdoc/basic/stm32basic/126b08e6a53918eab18839bd.html",
        "relativePath": "/sdoc/10-基础篇/10-STM32基础/LV050-STM32地址重映射.html",
        "frontmatter": {
          "title": "LV050-STM32地址重映射",
          "date": "2025-09-20 13:39:45",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/basic/stm32basic/126b08e6a53918eab18839bd",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "ab18839bd52b440b9ca51fa34ea3d714",
            "useduuid": "ab18839bd"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV050-STM32地址重映射",
        "date": "2025-09-20 13:39:45",
        "excerpt": "",
        "capture": "一、地址重映射\n这一部分还是以STM42F429为例。F429的中文手册可以看这里:RM0090_STM32F40xxx、STM32F41xxx、STM32F42xxx、STM32F43xx参考手册\n 1. 自举的概念\n自举(bootstrap)计算机设备使用硬件加载的程序,用于初始化足够的软件来查找并加载功能完整的操作系统。也用来描述加载自举程序的过程。什么是单片机的自举?单片机的自举就是单片机的启动。\n我们说,单片机程序基本都是从0地址出开始运行的,F429的0x00000000\\~0x001FFFFF地址映射了到什么存储器上,那么就从该存储器上读取指令,开始运行。\n至于说0x000000"
      },
      {
        "url": "/sdoc/basic/stm32basic/126b08e6840f3457e72c8780.html",
        "relativePath": "/sdoc/10-基础篇/10-STM32基础/LV045-STM32存储器系统.html",
        "frontmatter": {
          "title": "LV045-STM32存储器系统",
          "date": "2025-09-20 12:54:55",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/basic/stm32basic/126b08e6840f3457e72c8780",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "7e72c87803ee4322bcd1072590f70cb3",
            "useduuid": "7e72c8780"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV045-STM32存储器系统",
        "date": "2025-09-20 12:54:55",
        "excerpt": "",
        "capture": "一、基本概念\n 1. 寄存器\n 1.1 什么是寄存器?\n寄存器是计算机和微处理器内部的一种高速、小容量的存储单元,主要用于暂存指令、数据和地址。它是CPU或其他硬件组件直接操作的对象,访问速度远高于内存(RAM)。\n可以将其理解为 “工作台”:\n- CPU内核寄存器 是工程师(CPU)手边最顺手的工具,直接参与加工。\n- 外设寄存器 是工程师与外部机器(外设)进行控制和状态交互的控制面板。\n 1.2 寄存器分类\n寄存器根据其功能和位置,可以分为两个截然不同的层级。\n 1.2.1 CPU内核寄存器 (Core Registers)\n这类寄存器位于中央处理单元(CPU)内部,是CPU核心的一部分。"
      },
      {
        "url": "/sdoc/basic/stm32basic/126b08e6831f0a0031c3f015.html",
        "relativePath": "/sdoc/10-基础篇/10-STM32基础/LV040-STM32系统架构.html",
        "frontmatter": {
          "title": "LV040-STM32系统架构",
          "date": "2025-09-20 12:52:15",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/basic/stm32basic/126b08e6831f0a0031c3f015",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "031c3f0159bd41bfa7f2e89f6b50e340",
            "useduuid": "031c3f015"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV040-STM32系统架构",
        "date": "2025-09-20 12:52:15",
        "excerpt": "",
        "capture": "一、STM32简介\n 1. 回顾\n2007 年 6 月, ST 在北京发布了全球第一款基于 ARM Cortex M3 内核的 32 位通用微控制器芯片: STM32F103,以优异的性能,丰富的资源,超高的性价比,迅速占领市场,从此一鸣惊人,一发不可收拾,截止到 2020 年 6 月, STM32 累计出货量超过 45 亿颗。  \n后面学习的STM32就是用的下图中的STM32F103ZET6:\n&lt;img src=\"./LV040-STM32系统架构/img/image-20250920125818906.png\" alt=\"image-20250920125818906\" style"
      },
      {
        "url": "/sdoc/basic/stm32basic/126b08e608d01035e7260fce.html",
        "relativePath": "/sdoc/10-基础篇/10-STM32基础/LV021-认识HAL库.html",
        "frontmatter": {
          "title": "LV021-认识HAL库",
          "date": "2025-09-20 09:39:04",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/basic/stm32basic/126b08e608d01035e7260fce",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "5e7260fce3184ab293e2a218bc58687b",
            "useduuid": "5e7260fce"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV021-认识HAL库",
        "date": "2025-09-20 09:39:04",
        "excerpt": "<p>HAL,英文全称 Hardware Abstraction Layer,即硬件抽象层。 HAL 库是 ST 公司提供的外设驱动代码的驱动库,用户只需要调用库的 API 函数,便可间接配置寄存器。我们要写程序控制 STM32 芯片,其实最终就是控制它的寄存器,使之工作在我们需要的模式下, HAL 库将大部分寄存器的操作封装成了函数,我们只需要学习和掌握 HAL 库函数的结构和用法,就能方便地驱动 STM32 工作, 以节省开发时间。</p>\n<blockquote>\n<p>主要是ST官网主推的现在就是这个HAL库,而且STM32CubeMX软件生成工程也是用的这个,所以还是有必要学习一下。</p>\n</blockquote>\n",
        "capture": "HAL,英文全称 Hardware Abstraction Layer,即硬件抽象层。 HAL 库是 ST 公司提供的外设驱动代码的驱动库,用户只需要调用库的 API 函数,便可间接配置寄存器。我们要写程序控制 STM32 芯片,其实最终就是控制它的寄存器,使之工作在我们需要的模式下, HAL 库将大部分寄存器的操作封装成了函数,我们只需要学习和掌握 HAL 库函数的结构和用法,就能方便地驱动 STM32 工作, 以节省开发时间。  \n\n 一、HAL库驱动包\n 1. 下载STM32CubeF1固件\n直接来这里下载:STM32CubeF1 | Product - 意法半导体STMicroelec"
      },
      {
        "url": "/sdoc/basic/stm32basic/126b08e603011c2e21862cc6.html",
        "relativePath": "/sdoc/10-基础篇/10-STM32基础/LV020-STM32怎么开发.html",
        "frontmatter": {
          "title": "LV020-STM32怎么开发",
          "date": "2025-09-20 09:24:17",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/basic/stm32basic/126b08e603011c2e21862cc6",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "e21862cc6b54423c827258b8732bcdd8",
            "useduuid": "e21862cc6"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV020-STM32怎么开发",
        "date": "2025-09-20 09:24:17",
        "excerpt": "",
        "capture": "一、开发方式\n这篇笔记是已经对STM32有了一定的了解后才写的,其实STM32的开发大概有四种方式\n- (1)汇编,强的一批,我们可以直接使用内部寄存器和STM32的寄存器来使用汇编开发,难度可想而知。\n- (2)C语言+寄存器开发,这种相对容易,毕竟C语言我们都学过,无非是寄存器超级多。\n- (3)C语言+标准库,这个是我入门STM32的时候最先使用的库,一般都用这个。\n- (4)C语言+HAL库,HAL库配合STM32CubeMX软件使用,由于图形化的配置界面,这个HAL库据说是ST以后主推的库。\n 二、库开发与寄存器开发的关系  \n一般我们都是从学 51 单片机开发转而学习 STM32 "
      },
      {
        "url": "/sdoc/basic/stm32basic/126b08e600543a33cc0a657a.html",
        "relativePath": "/sdoc/10-基础篇/10-STM32基础/LV010-嵌入式C语言.html",
        "frontmatter": {
          "title": "LV010-嵌入式C语言",
          "date": "2025-09-20 09:17:32",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/basic/stm32basic/126b08e600543a33cc0a657a",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "3cc0a657a05d403785cc85fa30a99505",
            "useduuid": "3cc0a657a"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV010-嵌入式C语言",
        "date": "2025-09-20 09:17:32",
        "excerpt": "",
        "capture": "其实之前就学习过C预言了,语法什么的在嵌入式中都是一模一样的,就是有些数据类型还有相关操作可以再熟悉一下。\n 一、STM32支持的数据类型\n以STM32F103ZE这一款芯片为例,这是一块32bit的MCU,基本数据类型在此款芯片中的数据长度,以及在HAL库函数中的定义( stdint.h文件中的定义,采用C99标准)如下图:\n&lt;img src=\"./LV010-嵌入式C语言/img/image-20230418221356751.png\" alt=\"image-20230418221356751\" style=\"zoom: 80%;\" /\n 建议在开发过程中使用库定义的数据类型, 来定"
      },
      {
        "url": "/sdoc/basic/stm32basic/126b08e5feaa2043ad05a48e.html",
        "relativePath": "/sdoc/10-基础篇/10-STM32基础/LV001-STM32概述.html",
        "frontmatter": {
          "title": "LV001-STM32概述",
          "date": "2025-09-20 09:13:06",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/basic/stm32basic/126b08e5feaa2043ad05a48e",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "3ad05a48eac840679287e1b2301b039a",
            "useduuid": "3ad05a48e"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV001-STM32概述",
        "date": "2025-09-20 09:13:06",
        "excerpt": "",
        "capture": "一、STM32简介\n 1. STM32与ARM\n在2004年, ARM公司推出新一代Cortex内核后, ST公司抓住机遇,在很短的时间内就向市场推出了一系列的32位微控制器, 同时提供基于库的开发模式,加快用户研发周期。 STM32就是ST公司基于ARM Cortex-M系列内核设计的微控制器,专为高性能、低功耗、低成本场景设计。  \nSTM32如今产品系列非常丰富, 主要为ARM Cortex-M内核系列MCU,也开始涉及ARM Cortex-A内核\n系列MPU,如下图所示。 \n&lt;img src=\"./LV001-STM32概述/img/image-20230417223005421"
      },
      {
        "url": "/sdoc/basic/overview/126b08e5fb5429a0009ffc8b.html",
        "relativePath": "/sdoc/10-基础篇/01-概述/LV045-CortexM3的NVIC中断控制.html",
        "frontmatter": {
          "title": "LV040-CortexM3的NVIC中断控制",
          "date": "2025-09-20 09:04:52",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/basic/overview/126b08e5fb5429a0009ffc8b",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "0009ffc8b07a4e459a29f0ba0518592b",
            "useduuid": "0009ffc8b"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV040-CortexM3的NVIC中断控制",
        "date": "2025-09-20 09:04:52",
        "excerpt": "",
        "capture": "一、NVIC简介\nCortex-M3内核有一个专门管理中断的外设NVIC( Nested Vectored Interrupt Controller,嵌套向量中断控制器) , 通过优先级控制中断的嵌套和调度。NVIC是一个总的中断控制器, 无论是来在内核的异常还是外设的外部中断, 都由NVIC统一进行管理。 是 Cortex‐M3 不可分离的一部分, 它与 CM3 内核的逻辑紧密耦合, 有一部分甚至水乳交融在一起。 \nNVIC 与 CM3 内核同声相应,同气相求,相辅相成,里应外合,共同完成对中断的响应。 NVIC作为在内核里的外设,NVIC 的寄存器以存储器映射的方式来访问, 除了包含控制寄"
      },
      {
        "url": "/sdoc/basic/overview/126b08e5d7b911b28ed9ee4c.html",
        "relativePath": "/sdoc/10-基础篇/01-概述/LV040-CortexM3异常.html",
        "frontmatter": {
          "title": "LV040-CortexM3异常",
          "date": "2025-09-20 08:13:37",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/basic/overview/126b08e5d7b911b28ed9ee4c",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "28ed9ee4c4ee4374a05b403be9d08519",
            "useduuid": "28ed9ee4c"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV040-CortexM3异常",
        "date": "2025-09-20 08:13:37",
        "excerpt": "",
        "capture": "一、常见缩略语含义\n| 缩写 | 说明                               |\n| ---- | ---------------------------------- |\n| IRQ  | 中断请求(通常是指外部中断的请求) |\n| ISR  | 中断服务例程                       |\n| NMI  | 不可屏蔽中断                       |\n| NVIC | 嵌套向量中断控制器                 |\n| PSP  | 进程堆栈指针                       |\n 二、异常\n 1. 什么是异常?"
      },
      {
        "url": "/sdoc/basic/overview/126b08c73d361161792b640a.html",
        "relativePath": "/sdoc/10-基础篇/01-概述/LV035-CortexM3存储器系统.html",
        "frontmatter": {
          "title": "LV035-CortexM3存储器系统",
          "date": "2025-09-18 07:57:02",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/basic/overview/126b08c73d361161792b640a",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "1792b640ad2b40c1a34cc0ea4da24ed9",
            "useduuid": "1792b640a"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV035-CortexM3存储器系统",
        "date": "2025-09-18 07:57:02",
        "excerpt": "",
        "capture": "本篇笔记主要来自于《Cortex-M3 权威指南》的第五章存储器系统。其实有一部分概念在后边一篇笔记中才有所体现,比如什么是寄存器?。\n 一、存储器映射\nCM3 只有一个单一固定的存储器映射。这一点极大地方便了软件在各种 CM3 单片机间的移植。举个简单的例子,各款 CM3 单片机的 NVIC 和 MPU 都在相同的位置布设寄存器,使得它们变得通用。尽管如此, CM3 定出的条条框框是粗线条的,它依然允许芯片制造商灵活地分配存储器空间,以制造出各具特色的单片机产品。存储空间的一些位置用于调试组件等私有外设,这个地址段被称为“ 私有外设区”。私有外设区的组件包括:  \n(1)闪存地址重载及断点单"
      },
      {
        "url": "/sdoc/basic/overview/126b08c73a222946645cba90.html",
        "relativePath": "/sdoc/10-基础篇/01-概述/LV030-CortexM3简介.html",
        "frontmatter": {
          "title": "LV030-CortexM3简介",
          "date": "2025-09-18 07:49:14",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/basic/overview/126b08c73a222946645cba90",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "6645cba90f414432ac823c9d1938fc37",
            "useduuid": "6645cba90"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV030-CortexM3简介",
        "date": "2025-09-18 07:49:14",
        "excerpt": "",
        "capture": "一、概述\nARM(Advanced RISC Machine)是一个32位精简指令集(RISC)处理器架构,应用于许多嵌入式系统设计中。其中,自从ARMv7系列架构开始,ARM公司推出了Cortex系列,并根据不同的应用场景推出了Cortex-M,Cortex-A和Cortex-R三款不同方向的产品。\nARM代表了一种芯片标准,体现了芯片的架构设计,而具体涉及到存储器容量,片上外设,IO引脚数等实现,则是由不同的芯片厂商进行设计的。\n 二、内核与芯片\nARM公司提供内核(如Cortex M3,简称CM3,下同)授权,完整的MCU还需要很多其他组件。芯片公司(ST、 NXP、 TI、 GD、华大"
      },
      {
        "url": "/sdoc/basic/overview/126b08c738bc16b5b982661d.html",
        "relativePath": "/sdoc/10-基础篇/01-概述/LV020-CortexM0简介.html",
        "frontmatter": {
          "title": "LV020-CortexM0简介",
          "date": "2025-09-18 07:45:56",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/basic/overview/126b08c738bc16b5b982661d",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "5b982661dbf54e3db91954b53e220c58",
            "useduuid": "5b982661d"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV020-CortexM0简介",
        "date": "2025-09-18 07:45:56",
        "excerpt": "",
        "capture": "课程中使用的是STM32F0系列的芯片,用的是Cortex-M0的内核,所以这里的笔记是关于Cortex-M0的,对于我后来使用Cortex-M3内核大体上的的知识是基本通用的。\n 一、Cortex-M0处理器简介\n 1. Cortex-M 系列产品\nCortex-M 系列产品主要包括 Cortex-M0、Cortex-M1、Cortex-M3、Cortex-M4、Cortex-M7 等,其中 Cortex-M0 主打低功耗和混合信号的处理,M3 主要用来替代 ARM7,重点侧重能耗与性能的平衡,而 M7 则重点放在高性能控制运算领域。\n&lt;img src=\"./LV020-CortexM"
      },
      {
        "url": "/sdoc/basic/overview/126b08ba13b3329986816cf4.html",
        "relativePath": "/sdoc/10-基础篇/01-概述/LV010-常见存储器.html",
        "frontmatter": {
          "title": "LV010-常见存储器",
          "date": "2025-09-17 21:31:07",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/basic/overview/126b08ba13b3329986816cf4",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "986816cf43ae496ea97f2ac2344cf4bc",
            "useduuid": "986816cf4"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV010-常见存储器",
        "date": "2025-09-17 21:31:07",
        "excerpt": "",
        "capture": "一、单片机中的FLASH和SRAM\n我们在进行STM32芯片选型的时候,会看到这样的参数,可以看STM32F103选型页面:\n&lt;img src=\"./LV010-常见存储器/img/image-20230504212342232.png\" alt=\"image-20230504212342232\" style=\"zoom:50%;\" /\n比如这里,我们使用的STM32F103ZE系列芯片,有512KB的Flash和64KB的SRAM,这是什么意思呢?\n在STM32中 SRAM 及 FLASH 是作为内存和程序存储空间的。我们平时使用电脑,会考虑内存大小,有4GB、8GB、16GB等,也会"
      },
      {
        "url": "/sdoc/basic/overview/126b08ba0eae364f31526d00.html",
        "relativePath": "/sdoc/10-基础篇/01-概述/LV001-ARM体系结构.html",
        "frontmatter": {
          "title": "LV001-ARM体系结构",
          "date": "2025-09-17 21:18:22",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/basic/overview/126b08ba0eae364f31526d00",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "f31526d004e841cf942bb1c43e30f261",
            "useduuid": "f31526d00"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV001-ARM体系结构",
        "date": "2025-09-17 21:18:22",
        "excerpt": "",
        "capture": "一、 ARM简介\n 1. 为什么要学习ARM?\n在我们的生活中,STM32的应用得很广泛,像下边这些产品,可能都会用到STM32:\n&lt;img src=\"./LV001-ARM体系结构/img/image-20230408170339636.png\" alt=\"image-20230408170339636\" style=\"zoom:33%;\" /\n而STM32是一个微处理器,也就是MCU,它的结构一般如下:\n&lt;img src=\"./LV001-ARM体系结构/img/image-20230408170245470.png\" alt=\"image-20230408170245470\""
      },
      {
        "url": "/sdoc/dev-tool/burn-and-debug/126b08b9cea618afd74b243b.html",
        "relativePath": "/sdoc/01-开发工具/10-下载与调试/LV030-串口下载.html",
        "frontmatter": {
          "title": "LV030-串口下载",
          "date": "2025-09-17 19:54:30",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/dev-tool/burn-and-debug/126b08b9cea618afd74b243b",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "fd74b243b22149fe9c55a56a7b50b6d5",
            "useduuid": "fd74b243b"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV030-串口下载",
        "date": "2025-09-17 19:54:30",
        "excerpt": "<p>单片机开可以用串口下载程序,这部分来了解一下。</p>\n",
        "capture": "单片机开可以用串口下载程序,这部分来了解一下。\n 一、CH340驱动\n 1. CH340简介\n一般来说我们通过电脑连接到开发板的串口是用的RS232:\n&lt;img src=\"./LV030-串口下载/img/image-20220918134419265.png\" alt=\"image-20220918134419265\" style=\"zoom: 50%;\" /\n而RS-232 电平需要 DB9 接口 (也就是常说的 COM口)。现在的电脑很多都没有 DB9 接口了,取而代之的是 USB 接口,所以就催生出了很多 USB 转串口 TTL 芯片,比如 CH340、PL2303 等。通过这些"
      },
      {
        "url": "/sdoc/dev-tool/burn-and-debug/126b08b9cb90276fafba387f.html",
        "relativePath": "/sdoc/01-开发工具/10-下载与调试/LV020-ST-LINK-Utility简介.html",
        "frontmatter": {
          "title": "LV020-ST-LINK-Utility简介",
          "date": "2025-09-17 19:46:40",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/dev-tool/burn-and-debug/126b08b9cb90276fafba387f",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "fafba387f5f84aab849e4d8b464e22ad",
            "useduuid": "fafba387f"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV020-ST-LINK-Utility简介",
        "date": "2025-09-17 19:46:40",
        "excerpt": "",
        "capture": "一、简介\n我们有源码的时候可以使用MDK编译,然后一键下载,那我们要是没有源码怎么办?用串口吗?当然可以,还有别的办法吗?有啊,下边我们就来了解一下吧。\nSTM32 ST-LINK Utility这个软件工具其实主要就是配套“ST-LINK”这个下载工具一起使用的上位机软件。因此使用STM32 ST-LINK Utility上位机软件需要有一个ST-LINK工具才行。它的功能和J-Link对应的工具类似,用于烧写代码。\nSTM32 ST-LINK Utility工具在产品开发过程中测试一些其他版本的代码,可以直接下载hex,而不用打开工程再编译去下载。 当开发完一个STM32产品,需要量产的时"
      },
      {
        "url": "/sdoc/dev-tool/burn-and-debug/126b08b9c98b11187c20e13a.html",
        "relativePath": "/sdoc/01-开发工具/10-下载与调试/LV015-STLink怎么使用.html",
        "frontmatter": {
          "title": "LV015-STLink怎么使用",
          "date": "2025-09-17 19:41:23",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/dev-tool/burn-and-debug/126b08b9c98b11187c20e13a",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "87c20e13a48a44dfb380f22a1b102e34",
            "useduuid": "87c20e13a"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV015-STLink怎么使用",
        "date": "2025-09-17 19:41:23",
        "excerpt": "",
        "capture": "我这有一款ST-Link,这个是10脚的,引脚图直接画在正面了,如下图所示,按照排线的孔插入对应底座就可以啦。\n&lt;img src=\"./LV015-STLink怎么使用/img/image-20230422161832141.png\" alt=\"image-20230422161832141\" style=\"zoom: 50%;\" /\n 一、驱动安装\n 1. 驱动下载\n我们到官网去下载一个:STSW-LINK009 - 为Windows 7、Windows 8、Windows 10签署的ST-LINK、ST-LINK/V2、ST-LINK/V2-1 USB驱动 - 意法半导体STMicr"
      },
      {
        "url": "/sdoc/dev-tool/burn-and-debug/126b08b7f6ce25a6c770f3b5.html",
        "relativePath": "/sdoc/01-开发工具/10-下载与调试/LV010-JFlash简介.html",
        "frontmatter": {
          "title": "LV010-JFlash简介",
          "date": "2025-09-17 07:46:38",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/dev-tool/burn-and-debug/126b08b7f6ce25a6c770f3b5",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "6c770f3b50d84d7fad7f77bc05f872fc",
            "useduuid": "6c770f3b5"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV010-JFlash简介",
        "date": "2025-09-17 07:46:38",
        "excerpt": "",
        "capture": "一、JFlash简介\n我们有源码的时候可以使用MDK编译,然后一键下载,那我们要是没有源码怎么办?用串口吗?当然可以,还有别的办法吗?有啊,下边我们就来了解一下吧。\nJ-Flash 是单独的Flash ISP烧写软件,是一种独立Flash编程软件了,可以把单独的bin文件或者hex文件烧写到单片机的flash里面去。它是在安装 J-Link 驱动时自带的一款Flash ISP软件,支持bin格式、hex格式、srec格式(Motorola的)。\n 二、安装jFlash\n这个软件一般是随着J-Link驱动安装一起自动安装的,所以在我们安装好J-Link驱动的时候,这个软件就已经被安装好了,没有必"
      },
      {
        "url": "/sdoc/dev-tool/burn-and-debug/126b08ab16fa3e011692369d.html",
        "relativePath": "/sdoc/01-开发工具/10-下载与调试/LV001-下载与调试概述.html",
        "frontmatter": {
          "title": "LV001-下载与调试概述",
          "date": "2025-09-16 23:09:06",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/dev-tool/burn-and-debug/126b08ab16fa3e011692369d",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "11692369dc744332bc6f2569dd8ec58a",
            "useduuid": "11692369d"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV001-下载与调试概述",
        "date": "2025-09-16 23:09:06",
        "excerpt": "",
        "capture": "一、概述\nSTM32 常见的下载方式有三种:  \n| 下载方式 | 使用接口                 | 下载条件                                             | 优缺点                                                       |\n| -------------------------------------------------------- | ------------------------ | --------------------------------------------"
      },
      {
        "url": "/sdoc/dev-tool/burn-and-debug/126b08ab15ee0921c4f7fd64.html",
        "relativePath": "/sdoc/01-开发工具/10-下载与调试/LV002-JLink怎么使用.html",
        "frontmatter": {
          "title": "LV002-JLink怎么使用",
          "date": "2025-09-16 23:06:38",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/dev-tool/burn-and-debug/126b08ab15ee0921c4f7fd64",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "1c4f7fd64909407cb589ad3348a0c376",
            "useduuid": "1c4f7fd64"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV002-JLink怎么使用",
        "date": "2025-09-16 23:06:38",
        "excerpt": "",
        "capture": "一、驱动安装\n 1. 在哪里下载?\n我们到官网去下载一个:SEGGER - The Embedded Experts - Downloads - J-Link / J-Trace,可以选一个版本使用,我这里选的V7.86h,后我们可得到一个JLink_Windows_V786h_x86_64.exe可执行文件。\n&lt;img src=\"./LV002-JLink怎么使用/img/image-20230424172108179.png\" alt=\"image-20230424172108179\" style=\"zoom: 67%;\" /\n 2. 安装驱动\n这个由于我之前安装过,这里就不记录未安"
      },
      {
        "url": "/sdoc/dev-tool/stm32cube/126b08aaf7c11b6e19f8d60a.html",
        "relativePath": "/sdoc/01-开发工具/02-STM32Cube/LV002-STM32CubeMX工程创建.html",
        "frontmatter": {
          "title": "LV002-STM32CubeMX工程创建",
          "date": "2025-09-16 22:29:13",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/dev-tool/stm32cube/126b08aaf7c11b6e19f8d60a",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "e19f8d60a0f64d51a22bc5a8a04bf26f",
            "useduuid": "e19f8d60a"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV002-STM32CubeMX工程创建",
        "date": "2025-09-16 22:29:13",
        "excerpt": "",
        "capture": "一、工程创建\n 1. 芯片型号选择\n这个创建工程就比较简单了:\n- 【File】&rarr;【New Project】\n&lt;img src=\"./LV002-STM32CubeMX工程创建/img/image-20230419232250397.png\" alt=\"image-20230419232250397\"  /\n- 【选择芯片型号】&rarr;【Start Project】\n&lt;img src=\"./LV002-STM32CubeMX工程创建/img/image-20230419232522160.png\" alt=\"image-20230419232522160\"  /&gt"
      },
      {
        "url": "/sdoc/dev-tool/keil/126b08aa5e32382c0ab32a01.html",
        "relativePath": "/sdoc/01-开发工具/01-keil/LV002-工程创建.html",
        "frontmatter": {
          "title": "LV002-工程创建",
          "date": "2025-09-16 18:36:02",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/dev-tool/keil/126b08aa5e32382c0ab32a01",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "c0ab32a01a744756b6c0c3e4231ed9aa",
            "useduuid": "c0ab32a01"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV002-工程创建",
        "date": "2025-09-16 18:36:02",
        "excerpt": "<p>接下来就是工程创建啦。</p>\n",
        "capture": "接下来就是工程创建啦。\n 一、库文件\n在STM32的开发中,ST(意法半导体)提供了多种软件库来帮助开发者简化开发流程,提高开发效率。其中,标准外设库(Standard Peripheral Library, SPL) 和 硬件抽象层库(Hardware Abstraction Layer Library, HAL) 是最为经典和常用的两种。\n 1. 标准外设库 (Standard Peripheral Library, SPL)\n标准库,也称为SPL,是ST早期为STM32F1, F2, F4, L1等系列提供的库函数。它是对STM32芯片底层寄存器操作的一种封装,提供了一组C语言API用于"
      },
      {
        "url": "/sdoc/dev-tool/stm32cube/126b08aa58bc0838d250f7bd.html",
        "relativePath": "/sdoc/01-开发工具/02-STM32Cube/LV001-STM32CubeMX简介.html",
        "frontmatter": {
          "title": "LV001-STM32CubeMX简介",
          "date": "2025-09-16 18:22:04",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/dev-tool/stm32cube/126b08aa58bc0838d250f7bd",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "8d250f7bdb9d4b4fb822b135635cdf20",
            "useduuid": "8d250f7bd"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV001-STM32CubeMX简介",
        "date": "2025-09-16 18:22:04",
        "excerpt": "",
        "capture": "一、STM32CubeMX\n 1. 简介\n&lt;img src=\"./LV001-STM32CubeMX简介/img/image-20230419230755825.png\" alt=\"image-20230419230755825\" style=\"zoom:50%;\" /\nSTM32CubeMX是ST公司出品的一款C代码生成器软件,它是一种图形工具,通过分步过程可以非常轻松地配置STM32微控制器和微处理器,以及为Arm® Cortex®-M内核或面向Arm® Cortex®-A内核的特定Linux®设备树生成相应的初始化C代码。具有以下功能:\n- 直观的STM32微控制器和微处理器选择\n"
      },
      {
        "url": "/sdoc/dev-tool/keil/126b08a8b79e2ecaa634dd81.html",
        "relativePath": "/sdoc/01-开发工具/01-keil/LV001-keil简介.html",
        "frontmatter": {
          "title": "LV001-keil简介",
          "date": "2025-09-16 07:54:22",
          "icon": "famicons:logo-markdown",
          "permalink": "/sdoc/dev-tool/keil/126b08a8b79e2ecaa634dd81",
          "index": true,
          "tags": null,
          "categories": null,
          "copyright": false,
          "keywords": null,
          "cover": null,
          "comments": null,
          "mathjax": null,
          "top": null,
          "description": null,
          "tdoc": {
            "detailDate": {},
            "fulluuid": "aa634dd813594b2686f1ae7b5b6911d4",
            "useduuid": "aa634dd81"
          }
        },
        "author": {
          "name": "苏木",
          "link": "https://github.com/docs-site"
        },
        "title": "LV001-keil简介",
        "date": "2025-09-16 07:54:22",
        "excerpt": "",
        "capture": "一、Keil简介\n 1. 简介\nMDK 源自德国的 KEIL 公司,是 RealView MDK 的简称。在全球 MDK 被超过 10 万的嵌入式开发工程师使用。是目前针对 ARM 处理器,尤其是 Cortex M 内核处理器的最佳开发工具。  \nKeil MDK面向各种STM32微控制器产品的全面软件开发解决方案,提供创建、编译和调试嵌入式应用程序时所需的一切资源。MDK包括真正的Arm编译器和易于使用的Keil uVision IDE/调试器,可与STM32CubeMX和软件包连接。MDK还提供各种专业的中间件组件。\nMDK5 向后兼容 MDK4 和 MDK3 等,以前的项目同样可以在 M"
      }
    ],
    "groupPostsByYear": {
      "2025 ": [
        {
          "url": "/sdoc/basic/stm32flash/126b0e4540061175c7584cc2.html",
          "relativePath": "/sdoc/10-基础篇/50-STM32内部FLASH/LV025-IAP编程实现.html",
          "frontmatter": {
            "title": "LV025-IAP编程实现",
            "date": "2025-10-10 22:00:38",
            "icon": "famicons:logo-markdown",
            "permalink": "/sdoc/basic/stm32flash/126b0e4540061175c7584cc2",
            "index": true,
            "tags": null,
            "categories": null,
            "copyright": false,
            "keywords": null,
            "cover": null,
            "comments": null,
            "mathjax": null,
            "top": null,
            "description": null,
            "tdoc": {
              "detailDate": {},
              "fulluuid": "5c7584cc23ea451aaa122d51f3053c7c",
              "useduuid": "5c7584cc2"
            }
          },
          "author": {
            "name": "苏木",
            "link": "https://github.com/docs-site"
          },
          "title": "LV025-IAP编程实现",
          "date": "2025-10-10 22:00:38",
          "excerpt": "",
          "capture": "一、APP应用程序制作\nSTM32 的 APP 程序不仅可以放到 FLASH 里面运行,也可以放到 SRAM 里面运行,  我们使用的STM32F103ZET6有512KB的FLASH和64KB的SRAM,FLASH的地址为 0x0800 0000 \\~ 0x0807 FFFF,内部SRAM的地址为 0x2000 0000 \\~ 0x2000 FFFF。\n 1.APP起始地址设置\n 1.1 FLASH中运行\n- 【Options for Target】&rarr;【Target】\n&lt;img src=\"./LV025-IAP编程实现/img/image-20220925122206196."
        },
        {
          "url": "/sdoc/basic/stm32flash/126b0e26745a3124f27972bd.html",
          "relativePath": "/sdoc/10-基础篇/50-STM32内部FLASH/LV020-IAP编程简介.html",
          "frontmatter": {
            "title": "LV020-IAP编程简介",
            "date": "2025-10-08 20:18:18",
            "icon": "famicons:logo-markdown",
            "permalink": "/sdoc/basic/stm32flash/126b0e26745a3124f27972bd",
            "index": true,
            "tags": null,
            "categories": null,
            "copyright": false,
            "keywords": null,
            "cover": null,
            "comments": null,
            "mathjax": null,
            "top": null,
            "description": null,
            "tdoc": {
              "detailDate": {},
              "fulluuid": "4f27972bd3fc4860b4605d3ba9d93bb7",
              "useduuid": "4f27972bd"
            }
          },
          "author": {
            "name": "苏木",
            "link": "https://github.com/docs-site"
          },
          "title": "LV020-IAP编程简介",
          "date": "2025-10-08 20:18:18",
          "excerpt": "",
          "capture": "一、STM32编程方式\n 1. 在线编程\n 1.1 基本概念\nICP,全称为In-Circuit Programming,即在线编程。是通过 JTAG或者SWD 协议或者系统加载程序(Bootloader)下载用户应用程序到微控制器中。这种方式就是我们平时用的下载程序方式,就是通过JTAG下载器将我们通过Keil生成的hex文件下载到STM32开发板中。\n注意:这里我也不知道教程为什么叫这个,前边学习启动方式的时候也有提到过,它其实也可以称为 In System Program,也就是ISP,主要依靠ST官方在芯片内固化的BootLoader来接收来自串口的程序。\n 1.2 下载流程\n从串口下"
        },
        {
          "url": "/sdoc/basic/stm32memory/126b0e24d5e326e3a7296e85.html",
          "relativePath": "/sdoc/10-基础篇/60-STM32的内存/LV010-内存管理.html",
          "frontmatter": {
            "title": "LV010-内存管理",
            "date": "2025-10-08 09:57:15",
            "icon": "famicons:logo-markdown",
            "permalink": "/sdoc/basic/stm32memory/126b0e24d5e326e3a7296e85",
            "index": true,
            "tags": null,
            "categories": null,
            "copyright": false,
            "keywords": null,
            "cover": null,
            "comments": null,
            "mathjax": null,
            "top": null,
            "description": null,
            "tdoc": {
              "detailDate": {},
              "fulluuid": "3a7296e85ae54af393dd0790947698ce",
              "useduuid": "3a7296e85"
            }
          },
          "author": {
            "name": "苏木",
            "link": "https://github.com/docs-site"
          },
          "title": "LV010-内存管理",
          "date": "2025-10-08 09:57:15",
          "excerpt": "",
          "capture": "我们学习了使用 STM32F1 驱动外部 SRAM,以扩展 STM32F1 的内存,加上STM32F1 本身自带的 64K 字节内存,我们可供使用的内存还是比较多的。如果我们所用的内存都像上一节的 testsram 那样,定义一个数组来使用,显然不是一个好办法。后来在使用Flash做Bootloader实验的时候,就无法在原有工程中定义一个55KB的数组,然后 lcd做字模缩放的时候,数组也是预先定义好的,直接就16KB,再加上一些其他的,STM32内部Flash一共就64KB,直接被我占满,sct文件中定义了SRAM的长度,导致编译都无法通过,所以动态的去管理内存就很有必要了。\n &lt;f"
        },
        {
          "url": "/docs/126b096ee4d10f3bb564b607.html",
          "relativePath": "/sdoc/30-进阶篇/90-FreeRTOS/01-FreeRTOS简介/LV001-FreeRTOS简介.html",
          "frontmatter": {
            "title": "LV001-FreeRTOS简介",
            "date": "2025-09-29 06:31:21",
            "icon": "famicons:logo-markdown",
            "permalink": "/docs/126b096ee4d10f3bb564b607",
            "index": true,
            "tags": null,
            "categories": null,
            "copyright": false,
            "keywords": null,
            "cover": null,
            "comments": null,
            "mathjax": null,
            "top": null,
            "description": null,
            "tdoc": {
              "detailDate": {},
              "fulluuid": "bb564b607089439882d4247b57282de9",
              "useduuid": "bb564b607"
            }
          },
          "author": {
            "name": "苏木",
            "link": "https://github.com/docs-site"
          },
          "title": "LV001-FreeRTOS简介",
          "date": "2025-09-29 06:31:21",
          "excerpt": "",
          "capture": "一、RTOS简介\n一般嵌入式系统分为两种:前后台系统和实时系统。\n 1. 前后台系统\n早期嵌入式开发没有嵌入式操作系统的概念,直接操作裸机,在裸机上写程序,直接一个while大循环,在循环中实现功能。通常把程序分为两部分:前台系统 和 后台系统。\n简单的小系统通常是前后台系统,这样的程序包括一个死循环和若干个中断服务程序:应用程序是一个无限循环,循环中调用API函数完成所需的操作,这个大循环就叫做后台系统。中断服务程序用于处理系统的异步事件,也就是前台系统。前台是中断级,后台是任务级。\n 2. 实时系统?\n&gt; 参考:《嵌入式实时操作系统RT-Thread设计与实现》 提取码: rpxn "
        },
        {
          "url": "/sdoc/advanced-chapter/display/lcd/126b09525e7116330989fbcc.html",
          "relativePath": "/sdoc/30-进阶篇/04-显示屏/02-LCD/LV040-实现任意大小字模.html",
          "frontmatter": {
            "title": "LV040-实现任意大小字模",
            "date": "2025-09-27 19:37:13",
            "icon": "famicons:logo-markdown",
            "permalink": "/sdoc/advanced-chapter/display/lcd/126b09525e7116330989fbcc",
            "index": true,
            "tags": null,
            "categories": null,
            "copyright": false,
            "keywords": null,
            "cover": null,
            "comments": null,
            "mathjax": null,
            "top": null,
            "description": null,
            "tdoc": {
              "detailDate": {},
              "fulluuid": "30989fbcc8354f6baad6455294de0120",
              "useduuid": "30989fbcc"
            }
          },
          "author": {
            "name": "苏木",
            "link": "https://github.com/docs-site"
          },
          "title": "LV040-实现任意大小字模",
          "date": "2025-09-27 19:37:13",
          "excerpt": "",
          "capture": "我们要是想显示不同大小的字符怎么办?重新生成不同大小的字模?这当然是可以的啦,但是吧,要是需要的大小有很多怎么办,比如说我们需要16x16的,32x32的,64x64的,......,这样的话,都生成数组,然后放在文件里嘛,中文也都做成字库嘛?这样其实是可以的,只要内存足够就行,但是这样其实是很浪费资源的,它们的字模都是一样的,但是仅仅就是大小不同,我们就不能用一张表,然后对字体进行缩放,得到其他大小的字模嘛?当然可以啦,下边就来学习一下这个字模缩放的流程啦。\n注意后边主要是以英文字模的缩放为例,来说明缩放的原理,我们使用的字模大小为宽16高16,对应到英文的话,就是宽8高16啦。\n 一、基本"
        },
        {
          "url": "/sdoc/advanced-chapter/display/lcd/126b0952576b3df0941e36ed.html",
          "relativePath": "/sdoc/30-进阶篇/04-显示屏/02-LCD/LV035-中英文的显示.html",
          "frontmatter": {
            "title": "LV035-中英文的显示",
            "date": "2025-09-27 19:19:15",
            "icon": "famicons:logo-markdown",
            "permalink": "/sdoc/advanced-chapter/display/lcd/126b0952576b3df0941e36ed",
            "index": true,
            "tags": null,
            "categories": null,
            "copyright": false,
            "keywords": null,
            "cover": null,
            "comments": null,
            "mathjax": null,
            "top": null,
            "description": null,
            "tdoc": {
              "detailDate": {},
              "fulluuid": "0941e36ed35b4da7a71acace5c8d2e0d",
              "useduuid": "0941e36ed"
            }
          },
          "author": {
            "name": "苏木",
            "link": "https://github.com/docs-site"
          },
          "title": "LV035-中英文的显示",
          "date": "2025-09-27 19:19:15",
          "excerpt": "",
          "capture": "一、字模\n 1. 什么是字模?\n前边我们已经了解了字符的编码,有了编码,我们就能在计算机中处理、存储字符了,但是如果计算机处理完字符后直接以编码的形式输出,人类将难以识别。因此计算机与人交互时,一般会把字符转化成人类习惯的表现形式进行输出,如显示、打印的时候。\n但是如果仅有字符编码,计算机还不知道该如何表达该字符,因为字符实际上是一个个独特的图形,计算机必须把字符编码转化成对应的字符图形人类才能正常识别,因此我们要给计算机提供字符的图形数据,这些数据就是字模,多个字模数据组成的文件也被称为字库。计算机显示字符时,根据字符编码与字模数据的映射关系找到它相应的字模数据,液晶屏根据字模数据显示该字符"
        },
        {
          "url": "/sdoc/advanced-chapter/display/lcd/126b095255800a53f67e99cc.html",
          "relativePath": "/sdoc/30-进阶篇/04-显示屏/02-LCD/LV030-字符编码简介.html",
          "frontmatter": {
            "title": "LV030-字符编码基础",
            "date": "2025-09-27 19:14:24",
            "icon": "famicons:logo-markdown",
            "permalink": "/sdoc/advanced-chapter/display/lcd/126b095255800a53f67e99cc",
            "index": true,
            "tags": null,
            "categories": null,
            "copyright": false,
            "keywords": null,
            "cover": null,
            "comments": null,
            "mathjax": null,
            "top": null,
            "description": null,
            "tdoc": {
              "detailDate": {},
              "fulluuid": "3f67e99cc1774328be76eff3ae429948",
              "useduuid": "3f67e99cc"
            }
          },
          "author": {
            "name": "苏木",
            "link": "https://github.com/docs-site"
          },
          "title": "LV030-字符编码基础",
          "date": "2025-09-27 19:14:24",
          "excerpt": "",
          "capture": "一、字符编码概述\n在计算机上,我们看到的字符“ A”可能长这样 :\n&lt;img src=\"./LV030-字符编码简介/img/image-20230525215626795.png\" alt=\"image-20230525215626795\" style=\"zoom:50%;\" /\n对于同一个 TXT 文件中的内容,我们在 Notepad++ 上选择不同字体时,字符显示的形状也可能不一样。  所以 TXT 文件中保存的是字符的核心:它的编码值。而 Notepad++ 上显示时,这些字符对应什么样的形状态,这是由字符文件决定的。\n编码值,字体是两个不一样的东西,比如 A 的编码值是 0x4"
        },
        {
          "url": "/sdoc/advanced-chapter/display/lcd/126b095253d9037570d31d42.html",
          "relativePath": "/sdoc/30-进阶篇/04-显示屏/02-LCD/LV025-LCD显示实例.html",
          "frontmatter": {
            "title": "LV025-LCD显示实例",
            "date": "2025-09-27 19:10:01",
            "icon": "famicons:logo-markdown",
            "permalink": "/sdoc/advanced-chapter/display/lcd/126b095253d9037570d31d42",
            "index": true,
            "tags": null,
            "categories": null,
            "copyright": false,
            "keywords": null,
            "cover": null,
            "comments": null,
            "mathjax": null,
            "top": null,
            "description": null,
            "tdoc": {
              "detailDate": {},
              "fulluuid": "570d31d42d894e208a1fb9d5c484e257",
              "useduuid": "570d31d42"
            }
          },
          "author": {
            "name": "苏木",
            "link": "https://github.com/docs-site"
          },
          "title": "LV025-LCD显示实例",
          "date": "2025-09-27 19:10:01",
          "excerpt": "",
          "capture": "这一节的笔记主要是LCD显示相关,不关注触摸屏相关引脚。\n 一、硬件原理图\n 1. 正点原子2.8寸LCD模块\n&lt;img src=\"./LV025-LCD显示实例/img/image-20230520165852112.png\" alt=\"image-20230520165852112\" style=\"zoom:50%;\" /\n上图是正点原子的2.8寸LCD模块的原理图,说真的,没看懂,不明白为什么模块原理图上跳过了D8和D9两根线,并且标号对应的时候要D0对应DB1这样子。这个图给我看自闭了,反正是没看懂,而且教程也没见说为什么这样。索性不看了,目前就看几个关键的引脚,这几个关键的引脚"
        },
        {
          "url": "/sdoc/advanced-chapter/display/lcd/126b09523c371707f0bd772f.html",
          "relativePath": "/sdoc/30-进阶篇/04-显示屏/02-LCD/LV020-FSMC模拟8080时序.html",
          "frontmatter": {
            "title": "LV020-FSMC模拟8080时序",
            "date": "2025-09-27 18:49:51",
            "icon": "famicons:logo-markdown",
            "permalink": "/sdoc/advanced-chapter/display/lcd/126b09523c371707f0bd772f",
            "index": true,
            "tags": null,
            "categories": null,
            "copyright": false,
            "keywords": null,
            "cover": null,
            "comments": null,
            "mathjax": null,
            "top": null,
            "description": null,
            "tdoc": {
              "detailDate": {},
              "fulluuid": "7f0bd772fcbd424ab2f5aaf94abf65ff",
              "useduuid": "7f0bd772f"
            }
          },
          "author": {
            "name": "苏木",
            "link": "https://github.com/docs-site"
          },
          "title": "LV020-FSMC模拟8080时序",
          "date": "2025-09-27 18:49:51",
          "excerpt": "",
          "capture": "一、FSMC简介\n\n 1. 简介\nILI9341的8080通讯接口时序可以由STM32使用普通I/O接口进行模拟,但这样效率太低,STM32提供了一种特别的控制方法——使用FSMC接口实现8080时序。\n&lt;img src=\"./LV020-FSMC模拟8080时序/img/image-20230519221727962.png\" alt=\"image-20230519221727962\" style=\"zoom:50%;\" /&gt;\n我们前边学习SRAM的时候了解到STM32的FSMC外设可以用于控制扩展的外部存储器,而MCU对液晶屏的操作实际上就是把显示数据写入到显存中,与控制存储器"
        },
        {
          "url": "/sdoc/advanced-chapter/display/lcd/126b095238ef12080fa9e2fc.html",
          "relativePath": "/sdoc/30-进阶篇/04-显示屏/02-LCD/LV016-IL9341简介.html",
          "frontmatter": {
            "title": "LV016-IL9341简介",
            "date": "2025-09-27 18:41:11",
            "icon": "famicons:logo-markdown",
            "permalink": "/sdoc/advanced-chapter/display/lcd/126b095238ef12080fa9e2fc",
            "index": true,
            "tags": null,
            "categories": null,
            "copyright": false,
            "keywords": null,
            "cover": null,
            "comments": null,
            "mathjax": null,
            "top": null,
            "description": null,
            "tdoc": {
              "detailDate": {},
              "fulluuid": "80fa9e2fc1c846ac9bfafe695ffc6b7d",
              "useduuid": "80fa9e2fc"
            }
          },
          "author": {
            "name": "苏木",
            "link": "https://github.com/docs-site"
          },
          "title": "LV016-IL9341简介",
          "date": "2025-09-27 18:41:11",
          "excerpt": "",
          "capture": "一、简介\nILI9341是奕力科技股份有限公司 (ilitek.com)的一款小尺寸驱动IC,我在官网没看到芯片手册,但是有些查datasheet的地方是可以查到的,这里就不写链接了。我在本地保存了一份:01ILI9341_DS.pdf\n它是一个支持分辨率为240x320点阵的a-TFT LCD 的262144(26万色)色单片驱动器。这个单片驱动器包含了一个720通道的源极驱动器(source driver),一个320通道的栅极驱动器(gate driver),自带一个172800字节(320x240x18/8)的GRAM用于显示240x320分辨率的图片数据。ILI9341提供8位/9位"
        },
        {
          "url": "/sdoc/advanced-chapter/display/lcd/126b095237661ce983ad47b1.html",
          "relativePath": "/sdoc/30-进阶篇/04-显示屏/02-LCD/LV015-ATK-MD0280模块.html",
          "frontmatter": {
            "title": "LV015-ATK-MD0280模块",
            "date": "2025-09-27 18:37:18",
            "icon": "famicons:logo-markdown",
            "permalink": "/sdoc/advanced-chapter/display/lcd/126b095237661ce983ad47b1",
            "index": true,
            "tags": null,
            "categories": null,
            "copyright": false,
            "keywords": null,
            "cover": null,
            "comments": null,
            "mathjax": null,
            "top": null,
            "description": null,
            "tdoc": {
              "detailDate": {},
              "fulluuid": "983ad47b1ccb49c59396418e90556b0c",
              "useduuid": "983ad47b1"
            }
          },
          "author": {
            "name": "苏木",
            "link": "https://github.com/docs-site"
          },
          "title": "LV015-ATK-MD0280模块",
          "date": "2025-09-27 18:37:18",
          "excerpt": "",
          "capture": "一、相关资料\n这一部分主要看一下我们有哪些资料可以看,注意这里的资料都是放在本地的笔记对应的文件夹中:\n- ATK-MD0280模块用户手册:正点原子ATK-MD0280模块用户手册.pdf\n- ATK-MD0280模块裸屏图:00ATK-MD0280裸屏尺寸图(钢化玻璃TP).pdf\n- ILI9341芯片手册:01ILI9341_DS.pdf\n- 触摸驱动芯片手册:04XPT2046.pdf\n 二、2.8寸LCD模块\n我使用的是正点原子的2.8寸LCD模块,后边也是以这个模块进行学习。\n 1. 屏幕简介\nATK-MD0280-V2.4(V2.4 是版本号,下面均以 ATK-MD0280 表"
        },
        {
          "url": "/sdoc/advanced-chapter/display/lcd/126b0951760b03320ea5c5be.html",
          "relativePath": "/sdoc/30-进阶篇/04-显示屏/02-LCD/LV010-液晶控制原理.html",
          "frontmatter": {
            "title": "LV010-液晶控制原理",
            "date": "2025-09-27 13:42:19",
            "icon": "famicons:logo-markdown",
            "permalink": "/sdoc/advanced-chapter/display/lcd/126b0951760b03320ea5c5be",
            "index": true,
            "tags": null,
            "categories": null,
            "copyright": false,
            "keywords": null,
            "cover": null,
            "comments": null,
            "mathjax": null,
            "top": null,
            "description": null,
            "tdoc": {
              "detailDate": {},
              "fulluuid": "20ea5c5be93445288eac3b57c2e84f66",
              "useduuid": "20ea5c5be"
            }
          },
          "author": {
            "name": "苏木",
            "link": "https://github.com/docs-site"
          },
          "title": "LV010-液晶控制原理",
          "date": "2025-09-27 13:42:19",
          "excerpt": "",
          "capture": "一、显示屏的组成\n下图是两种适合于STM32芯片使用的显示屏,我们以它为例讲解控制液晶屏的基本原理。\n&lt;img src=\"./LV010-液晶控制原理/img/LCD007.jpeg\" alt=\"适合STM32控制的显示屏实物图\" style=\"zoom: 33%;\" /\n这个完整的显示屏由液晶显示面板、电容触摸面板以及PCB底板构成。图中的触摸面板带有触摸控制芯片,该芯片处理触摸信号并通过引出的信号线与外部器件通讯, 触摸面板中间是透明的,它贴在液晶面板上面,一起构成屏幕的主体,触摸面板与液晶面板引出的排线连接到PCB底板上,根据实际需要, PCB底板上可能会带有“液晶控制器芯片”,图"
        },
        {
          "url": "/sdoc/advanced-chapter/display/lcd/126b0951740b3b3a3f69973e.html",
          "relativePath": "/sdoc/30-进阶篇/04-显示屏/02-LCD/LV001-LCD简介.html",
          "frontmatter": {
            "title": "LV001-LCD简介",
            "date": "2025-09-27 13:37:07",
            "icon": "famicons:logo-markdown",
            "permalink": "/sdoc/advanced-chapter/display/lcd/126b0951740b3b3a3f69973e",
            "index": true,
            "tags": null,
            "categories": null,
            "copyright": false,
            "keywords": null,
            "cover": null,
            "comments": null,
            "mathjax": null,
            "top": null,
            "description": null,
            "tdoc": {
              "detailDate": {},
              "fulluuid": "a3f69973ef4142428240aba5719aeeb0",
              "useduuid": "a3f69973e"
            }
          },
          "author": {
            "name": "苏木",
            "link": "https://github.com/docs-site"
          },
          "title": "LV001-LCD简介",
          "date": "2025-09-27 13:37:07",
          "excerpt": "",
          "capture": "一、显示屏基础\n显示器属于计算机的I/O设备,即输入输出设备。它是一种将特定电子信息输出到屏幕上再反射到人眼的显示工具。常见的有CRT显示器、液晶显示器、LED点阵显示器及OLED显示器。从第一个显示装置发明至今,已经快有百年历史。 在显示屏的发展中,依次出现了三大显示技术: CRT、LCD、 OLED,如图所示。  \n&lt;img src=\"./LV001-LCD简介/img/image-20230503183212724.png\" alt=\"image-20230503183212724\" style=\"zoom:50%;\" /\n 1. CRT显示屏\n1897年, 德国电气工程师、 发明"
        },
        {
          "url": "/sdoc/advanced-chapter/display/oled/126b09517279099247b327e5.html",
          "relativePath": "/sdoc/30-进阶篇/04-显示屏/01-OLED/LV010-8080时序驱动OLED.html",
          "frontmatter": {
            "title": "LV010-8080时序驱动OLED",
            "date": "2025-09-27 13:33:05",
            "icon": "famicons:logo-markdown",
            "permalink": "/sdoc/advanced-chapter/display/oled/126b09517279099247b327e5",
            "index": true,
            "tags": null,
            "categories": null,
            "copyright": false,
            "keywords": null,
            "cover": null,
            "comments": null,
            "mathjax": null,
            "top": null,
            "description": null,
            "tdoc": {
              "detailDate": {},
              "fulluuid": "247b327e5f1747919749deb8038e066d",
              "useduuid": "247b327e5"
            }
          },
          "author": {
            "name": "苏木",
            "link": "https://github.com/docs-site"
          },
          "title": "LV010-8080时序驱动OLED",
          "date": "2025-09-27 13:33:05",
          "excerpt": "",
          "capture": "本节笔记放在这里,主要是为了学习8080时序,为后边FSMC产生8080时序做铺垫,这一部分的笔记是用GPIO模拟8080时序,这样对8080时序的认识会更深刻一些。由于我没有8080并口的OLED模块,所以还是以正点原子的OLED模块来进行时序的模拟。\n 一、硬件原理图\n&lt;img src=\"./LV010-8080时序驱动OLED/img/image-20230516234228390.png\" alt=\"image-20230516234228390\" style=\"zoom:50%;\" /\n(1)CS: OLED 片选信号,对应 PD6。\n(2)WR:向 OLED 写入数据,对应 "
        },
        {
          "url": "/sdoc/advanced-chapter/display/oled/126b09516d6c2a948085516b.html",
          "relativePath": "/sdoc/30-进阶篇/04-显示屏/01-OLED/LV001-OLED简介.html",
          "frontmatter": {
            "title": "LV001-OLED简介",
            "date": "2025-09-27 13:20:12",
            "icon": "famicons:logo-markdown",
            "permalink": "/sdoc/advanced-chapter/display/oled/126b09516d6c2a948085516b",
            "index": true,
            "tags": null,
            "categories": null,
            "copyright": false,
            "keywords": null,
            "cover": null,
            "comments": null,
            "mathjax": null,
            "top": null,
            "description": null,
            "tdoc": {
              "detailDate": {},
              "fulluuid": "48085516b89044b2a637057cfaac3f5c",
              "useduuid": "48085516b"
            }
          },
          "author": {
            "name": "苏木",
            "link": "https://github.com/docs-site"
          },
          "title": "LV001-OLED简介",
          "date": "2025-09-27 13:20:12",
          "excerpt": "",
          "capture": "本节笔记放在这里,主要是为了学习8080时序,为后边FSMC产生8080时序做铺垫,这一部分的笔记是用GPIO模拟8080时序,这样对8080时序的认识会更深刻一些。这一节会涉及一些像素啊,显存啊什么的基本概念,笔记写在LCD屏幕学的相关笔记中了。平时我用的还是I2C或者SPI接口的OLED。\n 一、OLED简介\n 1. 简介\nOLED,即有机发光二极管(Organic Light-Emitting Diode),又称为有机电激光显示(Organic Electroluminesence Display, OELD)。OLED由于同时具备自发光,不需背光源、对比度高、厚度薄、视角广、反应速度快"
        },
        {
          "url": "/sdoc/advanced-chapter/ov7725/126b09516bd03c413cd356e8.html",
          "relativePath": "/sdoc/30-进阶篇/03-OV7725/LV020-OV7725简介.html",
          "frontmatter": {
            "title": "LV020-OV7725简介",
            "date": "2025-09-27 13:16:00",
            "icon": "famicons:logo-markdown",
            "permalink": "/sdoc/advanced-chapter/ov7725/126b09516bd03c413cd356e8",
            "index": true,
            "tags": null,
            "categories": null,
            "copyright": false,
            "keywords": null,
            "cover": null,
            "comments": null,
            "mathjax": null,
            "top": null,
            "description": null,
            "tdoc": {
              "detailDate": {},
              "fulluuid": "13cd356e84f447f3b52ee1a287368dce",
              "useduuid": "13cd356e8"
            }
          },
          "author": {
            "name": "苏木",
            "link": "https://github.com/docs-site"
          },
          "title": "LV020-OV7725简介",
          "date": "2025-09-27 13:16:00",
          "excerpt": "",
          "capture": "一、OV7725简介\n 1. CCD  Sensor与CMOS Sensor\n目前市场上采用的图像传感器(Sensor)主要有CCD与CMOS这两种。CCD Sensor的技术比较成熟,一致性较好,色彩还原逼真,在尺寸方面也有一定的优势,但是其工艺复杂、成本高、功耗大,像素提高难度大,技术遇到瓶颈。而CMOS Sensor制造工艺简单,成本相对较低,功耗小,开发简便,在现阶段有较大的发展空间。相关参数的对比如表所示。\n&lt;img src=\"./LV020-OV7725简介/img/image-20240114142822888.png\" alt=\"image-202401141428228"
        },
        {
          "url": "/sdoc/advanced-chapter/ov7725/126b09516b6c2fed98855250.html",
          "relativePath": "/sdoc/30-进阶篇/03-OV7725/LV010-SCCB协议简介.html",
          "frontmatter": {
            "title": "LV010-SCCB协议简介",
            "date": "2025-09-27 13:15:00",
            "icon": "famicons:logo-markdown",
            "permalink": "/sdoc/advanced-chapter/ov7725/126b09516b6c2fed98855250",
            "index": true,
            "tags": null,
            "categories": null,
            "copyright": false,
            "keywords": null,
            "cover": null,
            "comments": null,
            "mathjax": null,
            "top": null,
            "description": null,
            "tdoc": {
              "detailDate": {},
              "fulluuid": "d9885525026649bdb9a31be28b79a722",
              "useduuid": "d98855250"
            }
          },
          "author": {
            "name": "苏木",
            "link": "https://github.com/docs-site"
          },
          "title": "LV010-SCCB协议简介",
          "date": "2025-09-27 13:15:00",
          "excerpt": "",
          "capture": "一、SCCB是什么?\nSCCB(Serial Camera Control Bus,串行摄像头控制总线) 是 OmniVision 开发的一种总线协议, 且广泛被应用于 OV 系列图像传感器上。\nSCCB 协议与 IIC 协议十分相似, SCCB协议由两条信号线组成: SIO_C(类似 IIC 协议的 SCL) 和 SIO_D(类似 IIC 协议的 SDA)。与 IIC 协议一样, SCCB 协议也有起始信号和停止信号, 只不过与 IIC 协议不同的是, IIC协议在传输完 1 字节数据后,需要传输的接收方发送 1 比特的确认位,而 SCCB 协议一次性要传输 9 位数据, 前 8 位为读写的"
        },
        {
          "url": "/sdoc/advanced-chapter/ov7725/126b09516b08191a7bd0fd02.html",
          "relativePath": "/sdoc/30-进阶篇/03-OV7725/LV001-ATK-MC6625F模块简介.html",
          "frontmatter": {
            "title": "LV001-ATK-MC6625F模块简介",
            "date": "2025-09-27 13:14:00",
            "icon": "famicons:logo-markdown",
            "permalink": "/sdoc/advanced-chapter/ov7725/126b09516b08191a7bd0fd02",
            "index": true,
            "tags": null,
            "categories": null,
            "copyright": false,
            "keywords": null,
            "cover": null,
            "comments": null,
            "mathjax": null,
            "top": null,
            "description": null,
            "tdoc": {
              "detailDate": {},
              "fulluuid": "a7bd0fd0290345cfae6ad4ff74f043f7",
              "useduuid": "a7bd0fd02"
            }
          },
          "author": {
            "name": "苏木",
            "link": "https://github.com/docs-site"
          },
          "title": "LV001-ATK-MC6625F模块简介",
          "date": "2025-09-27 13:14:00",
          "excerpt": "",
          "capture": "一、ATK-MC6625F模块简介\nATK-MC7725F 模块一款高性能 30W 高清摄像头模块。 该模块采用 OmniVision 公司的 OV7725 摄像头传感器作为核心, OV7725 是一颗 1/4 英寸 CMOS VGA( 640*480)的图像传感器。 同时 ATK-MC7725F 模块集成了有源晶振和 FIFO 芯片, 这使得可以采用大部分的 MCU 控制该模块和读取图像数据。  \nATK-MC6625F 模块具有如下特点:\n- 集成有源晶振,无需外部提供时钟\n- 集成 FIFO 芯片,方便外部 MCU 读取图像\n- 支持 VGA、 QVGA 和从 CIF 到 40*30 的"
        },
        {
          "url": "/sdoc/peripheral/usb/126b095168b91d9fad5c2a07.html",
          "relativePath": "/sdoc/20-基本外设篇/60-USB/LV010-USB读卡器实例.html",
          "frontmatter": {
            "title": "LV010-USB读卡器实例",
            "date": "2025-09-27 13:08:09",
            "icon": "famicons:logo-markdown",
            "permalink": "/sdoc/peripheral/usb/126b095168b91d9fad5c2a07",
            "index": true,
            "tags": null,
            "categories": null,
            "copyright": false,
            "keywords": null,
            "cover": null,
            "comments": null,
            "mathjax": null,
            "top": null,
            "description": null,
            "tdoc": {
              "detailDate": {},
              "fulluuid": "fad5c2a07ce14efe93e887b24a93fb47",
              "useduuid": "fad5c2a07"
            }
          },
          "author": {
            "name": "苏木",
            "link": "https://github.com/docs-site"
          },
          "title": "LV010-USB读卡器实例",
          "date": "2025-09-27 13:08:09",
          "excerpt": "",
          "capture": "一、实验说明\n学习 USB 时我们说过 USB 有很多的设备类,这一节的 USB 读卡器实际上是一个大容量存储设备(MSC: Mass Storage Class),本实验实现过程我们需要对 MSC 类实例化,即定义这个类可以操作的功能,上层应用通过 USBD_RegisterClass 函数,将此对象注册到 usbd 内核,它主要在 usbd_msc.c 源文件中实现它的各个成员函数。\n本实验中, STM32 作为设备连接到主机,我们需要使能 USB 外设,以便主机识别到 USB设备进行扫描,同时我们需要在软件上设计好 USB 枚举所需要的一些设备描述符和注册信息,配置对应的端点以用于 US"
        },
        {
          "url": "/sdoc/peripheral/usb/126b095167b12a8376012928.html",
          "relativePath": "/sdoc/20-基本外设篇/60-USB/LV001-USB简介.html",
          "frontmatter": {
            "title": "LV001-USB简介",
            "date": "2025-09-27 13:05:45",
            "icon": "famicons:logo-markdown",
            "permalink": "/sdoc/peripheral/usb/126b095167b12a8376012928",
            "index": true,
            "tags": null,
            "categories": null,
            "copyright": false,
            "keywords": null,
            "cover": null,
            "comments": null,
            "mathjax": null,
            "top": null,
            "description": null,
            "tdoc": {
              "detailDate": {},
              "fulluuid": "3760129282bc45c68e9217915df4f46b",
              "useduuid": 376012928
            }
          },
          "author": {
            "name": "苏木",
            "link": "https://github.com/docs-site"
          },
          "title": "LV001-USB简介",
          "date": "2025-09-27 13:05:45",
          "excerpt": "",
          "capture": "USB,即通用串行总线(Universal Serial Bus),包括 USB 协议和 USB 硬件两个方面,支持热插拔功能。现在日常生活的很多方面都离不开 USB 的应用,如充电和数据传输等场景。\nUSB 经过多次修改, 1996 年确定了初始规范版本 USB1.0,目前由非盈利组织 USBIF(Front Page | USB-IF)管理。 STM32 自带的 USB 符合USB2.0 规范,故 2.0 版本仍是学习的重点。  \n 一、USB简介\nUSB 本身的知识体系非常复杂,这里就简单介绍一下,想更系统地学习 USB 的知识可以参考《圈圈教你玩 USB》、塞普拉斯提供的《USB101"
        },
        {
          "url": "/sdoc/advanced-chapter/esp8266/126b095152fb04ead8380cb5.html",
          "relativePath": "/sdoc/30-进阶篇/02-ESP8266/LV020-ATK-MW8266模块使用实例.html",
          "frontmatter": {
            "title": "LV020-ATK-ESP8266使用实例",
            "date": "2025-09-27 12:52:43",
            "icon": "famicons:logo-markdown",
            "permalink": "/sdoc/advanced-chapter/esp8266/126b095152fb04ead8380cb5",
            "index": true,
            "tags": null,
            "categories": null,
            "copyright": false,
            "keywords": null,
            "cover": null,
            "comments": null,
            "mathjax": null,
            "top": null,
            "description": null,
            "tdoc": {
              "detailDate": {},
              "fulluuid": "ad8380cb587c446592ab6fa1ae7318fd",
              "useduuid": "ad8380cb5"
            }
          },
          "author": {
            "name": "苏木",
            "link": "https://github.com/docs-site"
          },
          "title": "LV020-ATK-ESP8266使用实例",
          "date": "2025-09-27 12:52:43",
          "excerpt": "",
          "capture": "一、硬件连接\nATK-MW8266D 模块可直接与正点原子战舰 STM32F103 开发板板载的 ATK 模块接口( ATK MODULE)进行连接,具体的连接关系,如下表所示:  \n&lt;img src=\"./LV020-ATK-MW8266模块使用实例/img/image-20240113094305951.png\" alt=\"image-20240113094305951\" style=\"zoom:50%;\" /\n注意,若要使用正点原子战舰 STM32F103 开发板的 ATK MODULE 接口连接ATK-MW8266D 模块,需要用跳线帽将开发板板载的 P8 接线端子的 PB10("
        },
        {
          "url": "/sdoc/advanced-chapter/esp8266/126b0951520814de18399844.html",
          "relativePath": "/sdoc/30-进阶篇/02-ESP8266/LV015-ESP8266固件烧录.html",
          "frontmatter": {
            "title": "LV015-ESP8266固件烧录",
            "date": "2025-09-27 12:50:00",
            "icon": "famicons:logo-markdown",
            "permalink": "/sdoc/advanced-chapter/esp8266/126b0951520814de18399844",
            "index": true,
            "tags": null,
            "categories": null,
            "copyright": false,
            "keywords": null,
            "cover": null,
            "comments": null,
            "mathjax": null,
            "top": null,
            "description": null,
            "tdoc": {
              "detailDate": {},
              "fulluuid": "e18399844bf344e3bb81cdc33db73395",
              "useduuid": "e18399844"
            }
          },
          "author": {
            "name": "苏木",
            "link": "https://github.com/docs-site"
          },
          "title": "LV015-ESP8266固件烧录",
          "date": "2025-09-27 12:50:00",
          "excerpt": "",
          "capture": "这里主要是学习esp8266_start_guide_1_.pdf (ai-thinker.com)这篇文档,这是安信可提供的一个ESSP8266的入门教程。这节用的图都是安信可官方的模块,我没有实际买,这里只是做个笔记学习用。\n 一、接线与模式\n 1. 典型接线图\n这里以ESP01为例:\n&lt;img src=\"./LV015-ESP8266固件烧录/img/image-20240112192441073.png\" alt=\"image-20240112192441073\" style=\"zoom:50%;\" /\n 2. 启动模式\n一般来讲是这样的:\n&lt;img src=\"./LV01"
        },
        {
          "url": "/sdoc/advanced-chapter/esp8266/126b095151472d621a6605a9.html",
          "relativePath": "/sdoc/30-进阶篇/02-ESP8266/LV010-AT指令.html",
          "frontmatter": {
            "title": "LV010-AT指令",
            "date": "2025-09-27 12:48:07",
            "icon": "famicons:logo-markdown",
            "permalink": "/sdoc/advanced-chapter/esp8266/126b095151472d621a6605a9",
            "index": true,
            "tags": null,
            "categories": null,
            "copyright": false,
            "keywords": null,
            "cover": null,
            "comments": null,
            "mathjax": null,
            "top": null,
            "description": null,
            "tdoc": {
              "detailDate": {},
              "fulluuid": "21a6605a91b34e7b87e3081f66267021",
              "useduuid": "21a6605a9"
            }
          },
          "author": {
            "name": "苏木",
            "link": "https://github.com/docs-site"
          },
          "title": "LV010-AT指令",
          "date": "2025-09-27 12:48:07",
          "excerpt": "",
          "capture": "一、ESSP-AT是什么?\nESP-AT 是乐鑫开发的可直接用于量产的物联网应用固件,旨在降低客户开发成本,快速形成产品。通过 ESP-AT 指令,您可以快速加入无线网络、连接云平台、实现数据通信以及远程控制等功能,真正的通过无线通讯实现万物互联。\nESP-AT 是基于 ESP-IDF 或 ESP8266_RTOS_SDK 实现的软件工程。它使 ESP 模组作为从机,MCU 作为主机。MCU 发送 AT 命令给 ESP 模组,控制 ESP 模组执行不同的操作,并接收 ESP 模组返回的 AT 响应。ESP-AT 提供了大量功能不同的 AT 命令,如 Wi-Fi 命令、TCP/IP 命令、Blu"
        },
        {
          "url": "/sdoc/advanced-chapter/esp8266/126b0951502d346ca9aa7929.html",
          "relativePath": "/sdoc/30-进阶篇/02-ESP8266/LV001-ESP8266模块简介.html",
          "frontmatter": {
            "title": "LV001-ESP8266模块简介",
            "date": "2025-09-27 12:45:25",
            "icon": "famicons:logo-markdown",
            "permalink": "/sdoc/advanced-chapter/esp8266/126b0951502d346ca9aa7929",
            "index": true,
            "tags": null,
            "categories": null,
            "copyright": false,
            "keywords": null,
            "cover": null,
            "comments": null,
            "mathjax": null,
            "top": null,
            "description": null,
            "tdoc": {
              "detailDate": {},
              "fulluuid": "ca9aa79298244701abe40ba6e8a3afb0",
              "useduuid": "ca9aa7929"
            }
          },
          "author": {
            "name": "苏木",
            "link": "https://github.com/docs-site"
          },
          "title": "LV001-ESP8266模块简介",
          "date": "2025-09-27 12:45:25",
          "excerpt": "",
          "capture": "这一节开始,我们来学习一下正点原子的ESP8266模块。\n 一、ESP8266?\n 1. ESP8266是什么?\nESP8266其实是由乐鑫公司推出的一款WIFI芯片,而国内的一些物联网公司基于乐鑫的ESP8266芯片开发出了许多WIFI模块,这些WIFI模块大多以ESP8266作为前缀命名,因此我们通常用ESP8266指ESP8266WIFI模块。\n&lt;img src=\"./LV001-ESP8266模块简介/img/image-20240108220855988.png\" alt=\"image-20240108220855988\" /\n平常使用较多的ESP8266WIFI模块是国内安信"
        },
        {
          "url": "/sdoc/basic/stm32pwr/126b095140443bc89b1ebe84.html",
          "relativePath": "/sdoc/10-基础篇/70-STM32电源管理/LV010-三种模式实现.html",
          "frontmatter": {
            "title": "LV010-三种模式实现",
            "date": "2025-09-27 12:04:52",
            "icon": "famicons:logo-markdown",
            "permalink": "/sdoc/basic/stm32pwr/126b095140443bc89b1ebe84",
            "index": true,
            "tags": null,
            "categories": null,
            "copyright": false,
            "keywords": null,
            "cover": null,
            "comments": null,
            "mathjax": null,
            "top": null,
            "description": null,
            "tdoc": {
              "detailDate": {},
              "fulluuid": "89b1ebe841074780aa0a2abaac3caa24",
              "useduuid": "89b1ebe84"
            }
          },
          "author": {
            "name": "苏木",
            "link": "https://github.com/docs-site"
          },
          "title": "LV010-三种模式实现",
          "date": "2025-09-27 12:04:52",
          "excerpt": "",
          "capture": "一、通用配置\n 1. 硬件原理图\n硬件主要使用到了按键、 LED 以及使用串口输出调试信息。 \n&lt;img src=\"./LV010-三种模式实现/img/image-20230610191800976.png\" alt=\"image-20230610191800976\" style=\"zoom: 33%;\" /\n 2. STM32CubeMX配置\n 2.1 时钟树\n&lt;img src=\"./LV010-三种模式实现/img/image-20230610191131427.png\" alt=\"image-20230610191131427\" style=\"zoom: 25%;\" /&g"
        },
        {
          "url": "/sdoc/basic/stm32pwr/126b09513f17393c50358806.html",
          "relativePath": "/sdoc/10-基础篇/70-STM32电源管理/LV001-电源管理简介.html",
          "frontmatter": {
            "title": "LV001-电源管理简介",
            "date": "2025-09-27 12:01:51",
            "icon": "famicons:logo-markdown",
            "permalink": "/sdoc/basic/stm32pwr/126b09513f17393c50358806",
            "index": true,
            "tags": null,
            "categories": null,
            "copyright": false,
            "keywords": null,
            "cover": null,
            "comments": null,
            "mathjax": null,
            "top": null,
            "description": null,
            "tdoc": {
              "detailDate": {},
              "fulluuid": "c503588060cf485a965221f48977e91d",
              "useduuid": "c50358806"
            }
          },
          "author": {
            "name": "苏木",
            "link": "https://github.com/docs-site"
          },
          "title": "LV001-电源管理简介",
          "date": "2025-09-27 12:01:51",
          "excerpt": "",
          "capture": "一、STM32电源管理\n 1. 电源管理简介\n电源对电子设备的重要性不言而喻,它是保证系统稳定运行的基础,而保证系统能稳定运行后,又有低功耗的要求。\n在很多应用场合中都对电子设备的功耗要求非常苛刻,如某些传感器信息采集设备,仅靠小型的电池提供电源,要求工作长达数年之久,且期间不需要任何维护;由于智慧穿戴设备的小型化要求,电池体积不能太大导致容量也比较小,所以也很有必要从控制功耗入手,提高设备的续行时间。\n因此, STM32 有专门的电源管理外设监控电源并管理设备的运行模式,确保系统正常运行,并尽量降低器件的功耗。  \n 2. 电源系统结构\n为了方便进行电源管理, STM32把它的外设、内核等模"
        },
        {
          "url": "/sdoc/peripheral/rtc/126b09511eac35920a3f191c.html",
          "relativePath": "/sdoc/20-基本外设篇/55-RTC时钟/LV001-RTC简介.html",
          "frontmatter": {
            "title": "LV001-RTC简介",
            "date": "2025-09-27 11:18:52",
            "icon": "famicons:logo-markdown",
            "permalink": "/sdoc/peripheral/rtc/126b09511eac35920a3f191c",
            "index": true,
            "tags": null,
            "categories": null,
            "copyright": false,
            "keywords": null,
            "cover": null,
            "comments": null,
            "mathjax": null,
            "top": null,
            "description": null,
            "tdoc": {
              "detailDate": {},
              "fulluuid": "20a3f191c6054d8d9f5fd53ff7b809de",
              "useduuid": "20a3f191c"
            }
          },
          "author": {
            "name": "苏木",
            "link": "https://github.com/docs-site"
          },
          "title": "LV001-RTC简介",
          "date": "2025-09-27 11:18:52",
          "excerpt": "",
          "capture": "一、RTC简介\n实时时钟( Real Time Clock, RTC), 是一个可以不使用系统主电源供电的定时器。在系统主电源断开的情况下,依靠纽扣电池供电继续计时,可以维持几个月到几年的持续工作。在系统恢复主电源工作时, 为系统提供日历、时间信息。\n&lt;img src=\"./LV001-RTC简介/img/image-20230611142452003.png\" alt=\"image-20230611142452003\" style=\"zoom:50%;\" /\n比如台式电脑主机, 必须接电源才能工作, 此时可以正常显示当前日期、时间。电脑关机一段时间后,重新开机,系统没有联网,也能正确显"
        },
        {
          "url": "/sdoc/advanced-chapter/file-system/126b09511d060b54b7d725e9.html",
          "relativePath": "/sdoc/30-进阶篇/01-文件系统/LV025-FATFS中自定义的一些函数.html",
          "frontmatter": {
            "title": "LV025-FATFS中自定义的一些函数",
            "date": "2025-09-27 11:14:30",
            "icon": "famicons:logo-markdown",
            "permalink": "/sdoc/advanced-chapter/file-system/126b09511d060b54b7d725e9",
            "index": true,
            "tags": null,
            "categories": null,
            "copyright": false,
            "keywords": null,
            "cover": null,
            "comments": null,
            "mathjax": null,
            "top": null,
            "description": null,
            "tdoc": {
              "detailDate": {},
              "fulluuid": "4b7d725e9ba54c78945189a9341e3b34",
              "useduuid": "4b7d725e9"
            }
          },
          "author": {
            "name": "苏木",
            "link": "https://github.com/docs-site"
          },
          "title": "LV025-FATFS中自定义的一些函数",
          "date": "2025-09-27 11:14:30",
          "excerpt": "",
          "capture": "最终的代码可以看这里:STM32F103-Prj: STM32学习使用(STM32CubeMX+Makefile+VScode+J-Flash) (gitee.com)\n 一、文件系统结构体定义\n为了方便管理文件系统,定义一个结构体:\n```c\ntypedef struct __ex_fatfs\n{\n    FATFS *fs[FF_VOLUMES]; // 逻辑磁盘工作区.\n    BYTE *work;  // 挂载的时候用\n    FIL *file;             // 文件1\n    FIL *ftemp;            // 文件2\n    UINT br;   "
        },
        {
          "url": "/sdoc/advanced-chapter/file-system/126b09511b702501a47f120c.html",
          "relativePath": "/sdoc/30-进阶篇/01-文件系统/LV020-基于SD卡移植FATFS.html",
          "frontmatter": {
            "title": "LV015-基于SD卡移植FATFS",
            "date": "2025-09-27 11:10:24",
            "icon": "famicons:logo-markdown",
            "permalink": "/sdoc/advanced-chapter/file-system/126b09511b702501a47f120c",
            "index": true,
            "tags": null,
            "categories": null,
            "copyright": false,
            "keywords": null,
            "cover": null,
            "comments": null,
            "mathjax": null,
            "top": null,
            "description": null,
            "tdoc": {
              "detailDate": {},
              "fulluuid": "1a47f120cd8c41b6ab06d05da2ace352",
              "useduuid": "1a47f120c"
            }
          },
          "author": {
            "name": "苏木",
            "link": "https://github.com/docs-site"
          },
          "title": "LV015-基于SD卡移植FATFS",
          "date": "2025-09-27 11:10:24",
          "excerpt": "",
          "capture": "我们先来看一下以SD卡为存储介质的FatFs文件系统的移植。另外就是,我后来移植的过程中,发现我们在使用STM32CubeMX配置SDIO的时候不要开SDIO和DMA中断,不然SD卡读写是有问题的,但是吧,移植好文件系统后,不知道为什么,怎么都跑不起来,具体是哪的影响还不清楚,后边知道了再补充。\n 一、底层读写\n 1. 初始化\n首先我们需要初始化SD卡,这里还是使用STM32CubeMX来配置的SDIO,所以初始化就如下函数所示:\n```c\nvoid MX_SDIO_SD_Init(void);\n```\n【函数说明】这个函数是完成SDIO的初始化,也就完成了对SD卡的初始化。注意这里有两个坑,"
        },
        {
          "url": "/sdoc/advanced-chapter/file-system/126b0951078a03391bda267a.html",
          "relativePath": "/sdoc/30-进阶篇/01-文件系统/LV015-基于SPIFLASH移植FATFS.html",
          "frontmatter": {
            "title": "LV015-基于SPIFLASH移植FATFS",
            "date": "2025-09-27 10:59:30",
            "icon": "famicons:logo-markdown",
            "permalink": "/sdoc/advanced-chapter/file-system/126b0951078a03391bda267a",
            "index": true,
            "tags": null,
            "categories": null,
            "copyright": false,
            "keywords": null,
            "cover": null,
            "comments": null,
            "mathjax": null,
            "top": null,
            "description": null,
            "tdoc": {
              "detailDate": {},
              "fulluuid": "91bda267a4934867a0b05673bbc3ef13",
              "useduuid": "91bda267a"
            }
          },
          "author": {
            "name": "苏木",
            "link": "https://github.com/docs-site"
          },
          "title": "LV015-基于SPIFLASH移植FATFS",
          "date": "2025-09-27 10:59:30",
          "excerpt": "",
          "capture": "我们先来看一下以SPI FLASH为存储介质的FatFs文件系统的移植。\n 一、底层读写\n 1. 初始化\n首先我们需要初始化SPI FLASH,在这里我使用的是W25Q128,由于我使用的是STM32CubeMX来配置的SPI,所以初始化就如下函数所示:\n```c\n/* SPI2 init function */\nvoid MX_SPI2_Init(void);\n```\n 2. 获取SPI FLASH器件ID\n这一步其实本不是必须,但是由于代码支持了其他型号的SPI FLASH,所以这一步也就成了必要的步骤,其实也有好处,那就是可以通过读取ID来判断我们的SPI FLASH是否已经初始化完成:"
        },
        {
          "url": "/sdoc/advanced-chapter/file-system/126b095105912fc87e8eb3f7.html",
          "relativePath": "/sdoc/30-进阶篇/01-文件系统/LV010-FATFS简介.html",
          "frontmatter": {
            "title": "LV010-FATFS简介",
            "date": "2025-09-27 10:54:25",
            "icon": "famicons:logo-markdown",
            "permalink": "/sdoc/advanced-chapter/file-system/126b095105912fc87e8eb3f7",
            "index": true,
            "tags": null,
            "categories": null,
            "copyright": false,
            "keywords": null,
            "cover": null,
            "comments": null,
            "mathjax": null,
            "top": null,
            "description": null,
            "tdoc": {
              "detailDate": {},
              "fulluuid": "87e8eb3f76b14573a4c0856bf2257669",
              "useduuid": "87e8eb3f7"
            }
          },
          "author": {
            "name": "苏木",
            "link": "https://github.com/docs-site"
          },
          "title": "LV010-FATFS简介",
          "date": "2025-09-27 10:54:25",
          "excerpt": "",
          "capture": "二、 FatFs简介\n 1. FatFs是什么?\nFATFS 是一个完全免费开源的 FAT 文件系统模块,专门为小型的嵌入式系统而设计。它完全用标准 C 语言编写,所以具有良好的硬件平台独立性,可以移植到 8051、 PIC、 AVR、 SH、Z80、 H8、 ARM 等系列单片机上而只需做简单的修改。它支持 FATl2、 FATl6 和 FAT32,支持多个存储媒介;有独立的缓冲区,可以对多个文件进行读/写,并特别对 8 位单片机和 16 位单片机做了优化。\n 2. 它有什么特点\n(1)Windows 兼容的 FAT 文件系统(支持 FAT12/FAT16/FAT32)\n(2)与平台无关,移"
        },
        {
          "url": "/sdoc/advanced-chapter/file-system/126b0951040033e78ccbca10.html",
          "relativePath": "/sdoc/30-进阶篇/01-文件系统/LV001-文件系统简介.html",
          "frontmatter": {
            "title": "LV001-文件系统简介",
            "date": "2025-09-27 10:50:24",
            "icon": "famicons:logo-markdown",
            "permalink": "/sdoc/advanced-chapter/file-system/126b0951040033e78ccbca10",
            "index": true,
            "tags": null,
            "categories": null,
            "copyright": false,
            "keywords": null,
            "cover": null,
            "comments": null,
            "mathjax": null,
            "top": null,
            "description": null,
            "tdoc": {
              "detailDate": {},
              "fulluuid": "78ccbca106d046ecaee2de5e4c1f5766",
              "useduuid": "78ccbca10"
            }
          },
          "author": {
            "name": "苏木",
            "link": "https://github.com/docs-site"
          },
          "title": "LV001-文件系统简介",
          "date": "2025-09-27 10:50:24",
          "excerpt": "",
          "capture": "一、直接存储的弊端?\n我们前边已经学习了SPI FLASH和SD卡的读写,我们可以使用SPI FLASH直接存储数据,当需要记录字符“STM32 SPI FLASH” 时。 可以把这些文字转化成ASCII码,存储在数组中,然后调用SPI_FLASH_BufferWrite函数,把数组内容写入到SPI Flash芯片的指定地址上,在需要的时候从该地址把数据读取出来,再对读出来的数据以ASCII码的格式进行解读。  \n&lt;img src=\"./LV001-文件系统简介/img/image-20230513212219299.png\" alt=\"image-20230513212219299\" "
        },
        {
          "url": "/sdoc/peripheral/sdio/126b095100d21af60c8ed17e.html",
          "relativePath": "/sdoc/20-基本外设篇/50-SDIO/LV025-读写SD卡实例.html",
          "frontmatter": {
            "title": "LV025-读写SD卡实例",
            "date": "2025-09-27 10:42:10",
            "icon": "famicons:logo-markdown",
            "permalink": "/sdoc/peripheral/sdio/126b095100d21af60c8ed17e",
            "index": true,
            "tags": null,
            "categories": null,
            "copyright": false,
            "keywords": null,
            "cover": null,
            "comments": null,
            "mathjax": null,
            "top": null,
            "description": null,
            "tdoc": {
              "detailDate": {},
              "fulluuid": "60c8ed17e9a9490aaf1efe2014ac5b67",
              "useduuid": "60c8ed17e"
            }
          },
          "author": {
            "name": "苏木",
            "link": "https://github.com/docs-site"
          },
          "title": "LV025-读写SD卡实例",
          "date": "2025-09-27 10:42:10",
          "excerpt": "",
          "capture": "一、硬件原理图\n我使用的是正点原子战舰V3的开发板,硬件连接如下图:\n&lt;img src=\"./LV025-读写SD卡实例/img/image-20230512193905411.png\" alt=\"image-20230512193905411\" style=\"zoom:50%;\" /\n 二、STM32CubeMX配置\n像LED、按键和串口的配置这里就不再赘述,这里只写SDIO相关配置。注意,这一部分中的中断和DMA相关配置是作为笔记写在这里,后边的测试函数并没有使用DMA以及中断相关的内容,都是使用的查询方式,当使用查询方式,但是又开启了DMA以及相关中断的时候,数据读写可能会失败,这"
        },
        {
          "url": "/sdoc/peripheral/sdio/126b0951000d2a75b964fa55.html",
          "relativePath": "/sdoc/20-基本外设篇/50-SDIO/LV020-STM32的SDIO.html",
          "frontmatter": {
            "title": "LV020-STM32的SDIO",
            "date": "2025-09-27 10:40:13",
            "icon": "famicons:logo-markdown",
            "permalink": "/sdoc/peripheral/sdio/126b0951000d2a75b964fa55",
            "index": true,
            "tags": null,
            "categories": null,
            "copyright": false,
            "keywords": null,
            "cover": null,
            "comments": null,
            "mathjax": null,
            "top": null,
            "description": null,
            "tdoc": {
              "detailDate": {},
              "fulluuid": "5b964fa55b1c49f2849632ac18e58758",
              "useduuid": "5b964fa55"
            }
          },
          "author": {
            "name": "苏木",
            "link": "https://github.com/docs-site"
          },
          "title": "LV020-STM32的SDIO",
          "date": "2025-09-27 10:40:13",
          "excerpt": "",
          "capture": "本篇文档再看SD卡规范的时候就以文档Physical Layer Simplified Specification v2.0为主啦,因为STM32最高只支持2.0协议的SD卡。\n 一、SDIO简介\n 1. 简介\nSDIO,全称: Secure Digital Input and Output ,即安全数字输入输出接口。它是在SD卡接口的基础上发展而来,它可以兼容之前的SD卡,并可以连接SDIO接口设备,比如:蓝牙、WIFI、照相机等。\nSDIO和SD卡规范间的一个重要区别是增加了低速标准。低速卡的目标应用是以最小的硬件开支支持低速I/ O能力。低速卡支持类似调制解调器、条码扫描仪和GPS接收器"
        },
        {
          "url": "/sdoc/peripheral/sdio/126b0950ff013d660d235356.html",
          "relativePath": "/sdoc/20-基本外设篇/50-SDIO/LV015-SD卡的操作.html",
          "frontmatter": {
            "title": "LV015-SD卡的操作",
            "date": "2025-09-27 10:37:45",
            "icon": "famicons:logo-markdown",
            "permalink": "/sdoc/peripheral/sdio/126b0950ff013d660d235356",
            "index": true,
            "tags": null,
            "categories": null,
            "copyright": false,
            "keywords": null,
            "cover": null,
            "comments": null,
            "mathjax": null,
            "top": null,
            "description": null,
            "tdoc": {
              "detailDate": {},
              "fulluuid": "60d235356a8a41c6b5be0b1b1d22ed03",
              "useduuid": "60d235356"
            }
          },
          "author": {
            "name": "苏木",
            "link": "https://github.com/docs-site"
          },
          "title": "LV015-SD卡的操作",
          "date": "2025-09-27 10:37:45",
          "excerpt": "",
          "capture": "一、SD卡命令\nSD命令由主机发出,以广播命令和寻址命令为例,广播命令是针对与SD主机总线连接的所有从设备发送的,寻址命令是指定某个地址设备进行命令传输。这一章的内容我们可以参考文档 Physical Layer Simplified Specification v9.0 的 4.7 Commands  章节。 \n 1. 命令格式\nSD命令格式固定为48bit,都是通过CMD线连续传输的, 数据线不参与。  \n&lt;img src=\"./LV015-SD卡的操作/img/image-20230510194931239.png\" alt=\"image-20230510194931239\" st"
        },
        {
          "url": "/sdoc/peripheral/sdio/126b0950fe110bc81c4d2fd3.html",
          "relativePath": "/sdoc/20-基本外设篇/50-SDIO/LV001-SD卡简介.html",
          "frontmatter": {
            "title": "LV001-SD卡简介",
            "date": "2025-09-27 10:35:05",
            "icon": "famicons:logo-markdown",
            "permalink": "/sdoc/peripheral/sdio/126b0950fe110bc81c4d2fd3",
            "index": true,
            "tags": null,
            "categories": null,
            "copyright": false,
            "keywords": null,
            "cover": null,
            "comments": null,
            "mathjax": null,
            "top": null,
            "description": null,
            "tdoc": {
              "detailDate": {},
              "fulluuid": "81c4d2fd3b3049a1a63dd12e12b5a3fa",
              "useduuid": "81c4d2fd3"
            }
          },
          "author": {
            "name": "苏木",
            "link": "https://github.com/docs-site"
          },
          "title": "LV001-SD卡简介",
          "date": "2025-09-27 10:35:05",
          "excerpt": "",
          "capture": "这篇笔记主要看的是文档 Physical Layer Simplified Specification v9.0 ,但其实应该看文档Physical Layer Simplified Specification v2.0可能会更好一些,虽然他们基本是一样的(因为后边好像说是STM32做多支持到2.0版本的SD卡)。\n 一、SD卡简介\n 1. 什么是SD卡?\n SD卡(Secure Digital Memory Card)即:安全数码卡,它是在MMC的基础上发展而来,是一种基于半导体快闪记忆器的新一代记忆设备,是SD协会开发的一种专有 的非易失性 存储卡格式,用于便携式设备。由于它体积小、数据传"
        },
        {
          "url": "/sdoc/peripheral/dma/126b0950fc960317c7b64826.html",
          "relativePath": "/sdoc/20-基本外设篇/40-DMA/LV010-DMA使用实例.html",
          "frontmatter": {
            "title": "LV010-DMA使用实例",
            "date": "2025-09-27 10:31:26",
            "icon": "famicons:logo-markdown",
            "permalink": "/sdoc/peripheral/dma/126b0950fc960317c7b64826",
            "index": true,
            "tags": null,
            "categories": null,
            "copyright": false,
            "keywords": null,
            "cover": null,
            "comments": null,
            "mathjax": null,
            "top": null,
            "description": null,
            "tdoc": {
              "detailDate": {},
              "fulluuid": "7c7b6482620b4698a5eac4b6e449f631",
              "useduuid": "7c7b64826"
            }
          },
          "author": {
            "name": "苏木",
            "link": "https://github.com/docs-site"
          },
          "title": "LV010-DMA使用实例",
          "date": "2025-09-27 10:31:26",
          "excerpt": "",
          "capture": "这里的实例都是通过STM32CubeMX软件进行配置。\n 一、存储器到存储器\nFLASH to SRAM,把内部FLASH的数据传输到内部的SRAM。在这里相当于将FLASH当做外设,将SRAM作为存储器,将数据从外设传输到存储器  。一般步骤如下:\n(1)使能 DMA 时钟;\n(2)配置 DMA 数据参数;\n(3)使能 DMA,进行传输;\n(4)等待传输完成,并对源数据和目标地址数据进行比较。  \n 1. STM32CubeMX配置\n&lt;img src=\"./LV010-DMA使用实例/img/image-20230505195655829.png\" alt=\"image-2023050"
        },
        {
          "url": "/sdoc/peripheral/dma/126b0950fbc52669af52caac.html",
          "relativePath": "/sdoc/20-基本外设篇/40-DMA/LV001-DMA简介.html",
          "frontmatter": {
            "title": "LV001-DMA简介",
            "date": "2025-09-27 10:29:17",
            "icon": "famicons:logo-markdown",
            "permalink": "/sdoc/peripheral/dma/126b0950fbc52669af52caac",
            "index": true,
            "tags": null,
            "categories": null,
            "copyright": false,
            "keywords": null,
            "cover": null,
            "comments": null,
            "mathjax": null,
            "top": null,
            "description": null,
            "tdoc": {
              "detailDate": {},
              "fulluuid": "9af52caac91c42b1b28d2e09c22f8d43",
              "useduuid": "9af52caac"
            }
          },
          "author": {
            "name": "苏木",
            "link": "https://github.com/docs-site"
          },
          "title": "LV001-DMA简介",
          "date": "2025-09-27 10:29:17",
          "excerpt": "",
          "capture": "一、DMA简介\n 1. 简介\nDMA,即 Direct Memory Access,直接存储器访问。是单片机的一个外设,它的主要功能是用来搬数据,但是不需要占用 CPU,即在传输数据的时候, CPU 可以干其他的事情,好像是多线程一样。数据传输支持从外设到存储器或者存储器到存储器,这里的存储器可以是 SRAM 或者是 FLASH。\n我们知道CPU根据代码内容执行指令,这些众多指令中,有的用于计算、有的用于控制程序、有的用于转移数据等。 其中转移数据的指令,尤其是转移大量数据,会占用大量CPU资源。  例如把外设A的数据,传给外设B,这种情况其实不需要CPU一直参与,只需在A、 B之间创建个通道"
        },
        {
          "url": "/sdoc/peripheral/spi/126b0950f849211ff053e7ff.html",
          "relativePath": "/sdoc/20-基本外设篇/35-SPI/LV015-SPI读写W25QXXX实例.html",
          "frontmatter": {
            "title": "LV015-SPI读写W25QXXX实例",
            "date": "2025-09-27 10:20:25",
            "icon": "famicons:logo-markdown",
            "permalink": "/sdoc/peripheral/spi/126b0950f849211ff053e7ff",
            "index": true,
            "tags": null,
            "categories": null,
            "copyright": false,
            "keywords": null,
            "cover": null,
            "comments": null,
            "mathjax": null,
            "top": null,
            "description": null,
            "tdoc": {
              "detailDate": {},
              "fulluuid": "ff053e7ff3e247358beec3bab1ba61de",
              "useduuid": "ff053e7ff"
            }
          },
          "author": {
            "name": "苏木",
            "link": "https://github.com/docs-site"
          },
          "title": "LV015-SPI读写W25QXXX实例",
          "date": "2025-09-27 10:20:25",
          "excerpt": "",
          "capture": "一、一般步骤\n通过SPI读写外部FLASH的一般步骤如下:\n(1)初始化通讯使用的目标引脚及端口时钟;\n(2)使能 SPI 外设的时钟;\n(3)配置 SPI 外设的模式、地址、速率等参数并使能 SPI 外设;\n(4)编写基本 SPI 按字节收发的函数;\n(5)编写对 FLASH 擦除及读写操作的的函数;\n(6)编写测试程序,对读写数据进行校验。  \n 二、硬件原理图\n&lt;img src=\"./LV015-SPI读写W25QXXX实例/img/image-20230507205517724.png\" alt=\"image-20230507205517724\" style=\"zoom:50%;"
        },
        {
          "url": "/sdoc/peripheral/spi/126b0950f64a0b5a3fbcba93.html",
          "relativePath": "/sdoc/20-基本外设篇/35-SPI/LV010-W25QXXX简介.html",
          "frontmatter": {
            "title": "LV010-W25QXXX简介",
            "date": "2025-09-27 10:15:14",
            "icon": "famicons:logo-markdown",
            "permalink": "/sdoc/peripheral/spi/126b0950f64a0b5a3fbcba93",
            "index": true,
            "tags": null,
            "categories": null,
            "copyright": false,
            "keywords": null,
            "cover": null,
            "comments": null,
            "mathjax": null,
            "top": null,
            "description": null,
            "tdoc": {
              "detailDate": {},
              "fulluuid": "a3fbcba93d1642329a28cddcb65ad8e8",
              "useduuid": "a3fbcba93"
            }
          },
          "author": {
            "name": "苏木",
            "link": "https://github.com/docs-site"
          },
          "title": "LV010-W25QXXX简介",
          "date": "2025-09-27 10:15:14",
          "excerpt": "",
          "capture": "一、简介\nEEPROM和Flash的本质上是一样的, 都用于保存数据,Flash包括MCU内部的Flash和外部扩展的Flash,我使用的开发板的W25Q128就是一个SPI接口的外部NOR Flash。从功能上, Flash通常存放运行代码,运行过程中不会修改,而EEPROM存放用户数据,可能会反复修改。 从结构上, Flash按扇区操作, EEPROM通常按字节操作。  \nW25Q128是华邦的一款SPI接口 NOR FLASH 芯片,我看我使用的开发板上使用的型号是W25Q128JV,我们可以在这里找到它的芯片手册:W25Q128JV-datasheet。\n我们看芯片手册的开头,有这么几"
        },
        {
          "url": "/sdoc/peripheral/spi/126b0950f4ae14889c830ae3.html",
          "relativePath": "/sdoc/20-基本外设篇/35-SPI/LV001-STM32的SPI.html",
          "frontmatter": {
            "title": "LV001-STM32的SPI",
            "date": "2025-09-27 10:11:02",
            "icon": "famicons:logo-markdown",
            "permalink": "/sdoc/peripheral/spi/126b0950f4ae14889c830ae3",
            "index": true,
            "tags": null,
            "categories": null,
            "copyright": false,
            "keywords": null,
            "cover": null,
            "comments": null,
            "mathjax": null,
            "top": null,
            "description": null,
            "tdoc": {
              "detailDate": {},
              "fulluuid": "89c830ae3a594952be17b5abc6bbb737",
              "useduuid": "89c830ae3"
            }
          },
          "author": {
            "name": "苏木",
            "link": "https://github.com/docs-site"
          },
          "title": "LV001-STM32的SPI",
          "date": "2025-09-27 10:11:02",
          "excerpt": "",
          "capture": "一、SPI简介\n这一部分可以查看笔记《60-通信专题/30-SPI/LV001-SPI简介.md》。\n 二、STM32的SPI外设\n 1. 简介\nSTM32 的 SPI 外设可用作通讯的主机及从机,支持最高的 SCK 时钟频率为 fpclk/2 (STM32F103 型号的芯片默认 f:sub:pclk1 为 36MHz, fpclk2 为72MHz),完全支持 SPI 协议的 4 种模式,数据帧长度可设置为 8 位或 16 位,可设置数据 MSB 先行或 LSB 先行。它还支持双线全双工、双线单向以及单线模式。其中双线单向模式可以同时使用 MOSI 及 MISO 数据线向一个方向传输数据,可"
        },
        {
          "url": "/sdoc/communication/can/126b0950f34624bdf8f7407f.html",
          "relativePath": "/sdoc/60-通信专题/40-CAN/LV001-CAN通信简介.html",
          "frontmatter": {
            "title": "LV001-CAN通信简介",
            "date": "2025-09-27 10:07:42",
            "icon": "famicons:logo-markdown",
            "permalink": "/sdoc/communication/can/126b0950f34624bdf8f7407f",
            "index": true,
            "tags": null,
            "categories": null,
            "copyright": false,
            "keywords": null,
            "cover": null,
            "comments": null,
            "mathjax": null,
            "top": null,
            "description": null,
            "tdoc": {
              "detailDate": {},
              "fulluuid": "df8f7407fc324becb0237697f4ea8f9c",
              "useduuid": "df8f7407f"
            }
          },
          "author": {
            "name": "苏木",
            "link": "https://github.com/docs-site"
          },
          "title": "LV001-CAN通信简介",
          "date": "2025-09-27 10:07:42",
          "excerpt": "",
          "capture": "一、CAN简介\n 1. CAN\n控制器局域网( Controller Area Network, CAN) ,是由德国BOSCH(博世)公司开发, 是目前国际上应用最为广泛的现场总线之一。 其特点是可拓展性好,可承受大量数据的高速通信, 高度稳定可靠,因此常应用于汽车电子领域、工业自动化、医疗设备等高要求环境。  \n它是 ISO 国际标准化的串行通信协议。在当前的汽车产业中,出于对安全性、舒适性、方便性、低公害、低成本的要求,各种各样的电子控制系统被开发了出来。由于这些系统之间通信所用的数据类型及对可靠性的要求不尽相同,由多条总线构成的情况很多,线束的数量也随之增加。为适应“减少线束的数量”、"
        },
        {
          "url": "/sdoc/communication/serial-port/126b0950f287303e7c68cbb5.html",
          "relativePath": "/sdoc/60-通信专题/10-串口/LV030-RS485简介.html",
          "frontmatter": {
            "title": "LV030-RS485简介",
            "date": "2025-09-27 10:05:51",
            "icon": "famicons:logo-markdown",
            "permalink": "/sdoc/communication/serial-port/126b0950f287303e7c68cbb5",
            "index": true,
            "tags": null,
            "categories": null,
            "copyright": false,
            "keywords": null,
            "cover": null,
            "comments": null,
            "mathjax": null,
            "top": null,
            "description": null,
            "tdoc": {
              "detailDate": {},
              "fulluuid": "e7c68cbb501d41a4be750e720e3a5e0a",
              "useduuid": "e7c68cbb5"
            }
          },
          "author": {
            "name": "苏木",
            "link": "https://github.com/docs-site"
          },
          "title": "LV030-RS485简介",
          "date": "2025-09-27 10:05:51",
          "excerpt": "",
          "capture": "一、RS485简介\nRS485是美国电子工业协会( Electronic Industries Association, EIA)于1983年发布的串行通信接口标准,经通讯工业协会( TIA)修订后命名为TIA/EIA-485-A。  485(一般称作RS485/EIA-485)是隶属于OSI模型物理层的电气特性规定为2线,半双工,多点通信的标准。用缆线两端的电压差值来表示传递信号。RS485仅仅规定了接受端和发送端的电气特性。它没有规定或推荐任何数据协议。\nRS485比RS232晚出现20多年,很多RS232的缺点,在RS485上有了改进。RS232的电平从-15V至+15V, 较高的电平值"
        },
        {
          "url": "/sdoc/communication/serial-port/126b0950f26b1afbd6db3885.html",
          "relativePath": "/sdoc/60-通信专题/10-串口/LV020-RS232简介.html",
          "frontmatter": {
            "title": "LV020-RS232简介",
            "date": "2025-09-27 10:05:23",
            "icon": "famicons:logo-markdown",
            "permalink": "/sdoc/communication/serial-port/126b0950f26b1afbd6db3885",
            "index": true,
            "tags": null,
            "categories": null,
            "copyright": false,
            "keywords": null,
            "cover": null,
            "comments": null,
            "mathjax": null,
            "top": null,
            "description": null,
            "tdoc": {
              "detailDate": {},
              "fulluuid": "bd6db38856214d8db0d0697d94245e7d",
              "useduuid": "bd6db3885"
            }
          },
          "author": {
            "name": "苏木",
            "link": "https://github.com/docs-site"
          },
          "title": "LV020-RS232简介",
          "date": "2025-09-27 10:05:23",
          "excerpt": "",
          "capture": "一、RS232简介\nRS232是美国电子工业协会( Electronic Industries Association, EIA) 于1962年发布的串行通信接口标准,其中RS为英文“ Recomend Standard”的缩写, 中文翻译为“ 推荐标准”, 232为标识号。该标准对串行通信的物理接口及逻辑电平都做了规定, 其输出的电平称为RS232电平。早期常见于个人计算机上,是计算机通讯接口之一。现如今在个人计算机上已比较少见, 但在一些工控设备依旧比较多。\n最简单的RS232通信由三条数据线组成,即TXD、 RXD和GND。 RS232采用负逻辑电平,即-15V ~ -3V代表逻辑“ 1"
        },
        {
          "url": "/sdoc/communication/spi/126b0950dceb1d850b1e36d8.html",
          "relativePath": "/sdoc/60-通信专题/30-SPI/LV001-SPI简介.html",
          "frontmatter": {
            "title": "LV001-SPI简介",
            "date": "2025-09-27 09:50:19",
            "icon": "famicons:logo-markdown",
            "permalink": "/sdoc/communication/spi/126b0950dceb1d850b1e36d8",
            "index": true,
            "tags": null,
            "categories": null,
            "copyright": false,
            "keywords": null,
            "cover": null,
            "comments": null,
            "mathjax": null,
            "top": null,
            "description": null,
            "tdoc": {
              "detailDate": {},
              "fulluuid": "50b1e36d86eb4c0e85c11fe350fcd877",
              "useduuid": "50b1e36d8"
            }
          },
          "author": {
            "name": "苏木",
            "link": "https://github.com/docs-site"
          },
          "title": "LV001-SPI简介",
          "date": "2025-09-27 09:50:19",
          "excerpt": "",
          "capture": "一、 SPI协议简介\n 1. 什么是SPI?\nSPI 协议,Serial Peripheral Interface  ,即串行外围设备接口, 是由摩托罗拉公司提出的通讯协议( Motorola) 在1980前后提出的一种全双工同步串行通信接口,它用于MCU与各种外围设备以串行方式进行通信以交换信息,通信速度最高可达25MHz以上。SPI接口主要应用在EEPROM、 FLASH、实时时钟、网络控制器、 OLED显示驱动器、 AD转换器,数字信号处理器、数字信号解码器等与MCU间要求通讯速率较高的场合 。\nSPI,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管"
        },
        {
          "url": "/sdoc/basic/stm32memory/126b0941431c016e4bdd2a68.html",
          "relativePath": "/sdoc/10-基础篇/60-STM32的内存/LV001-STM32内存简介.html",
          "frontmatter": {
            "title": "LV001-STM32内存简介",
            "date": "2025-09-26 07:26:04",
            "icon": "famicons:logo-markdown",
            "permalink": "/sdoc/basic/stm32memory/126b0941431c016e4bdd2a68",
            "index": true,
            "tags": null,
            "categories": null,
            "copyright": false,
            "keywords": null,
            "cover": null,
            "comments": null,
            "mathjax": null,
            "top": null,
            "description": null,
            "tdoc": {
              "detailDate": {},
              "fulluuid": "e4bdd2a68030419b91dea7af452724aa",
              "useduuid": "e4bdd2a68"
            }
          },
          "author": {
            "name": "苏木",
            "link": "https://github.com/docs-site"
          },
          "title": "LV001-STM32内存简介",
          "date": "2025-09-26 07:26:04",
          "excerpt": "",
          "capture": "其实断断续续的,STM32启动文件、启动方式、程序组成、map文件、sct文件、sram、内部flash都大概已经了解过了,这里进行总结,从stm32启动开始,到程序跑起来,这中间究竟是怎么个过程。\n\n 一、单片机的启动\n&lt;img src=\"./LV001-STM32内存简介/img/image-20251008084514529.png\" alt=\"image-20251008084514529\" style=\"zoom:50%;\" /&gt;\n关于存储器映像,可以看 10-基础篇/10-STM32基础/LV045-STM32存储器系统.md\n关于启动方式,我们可以看 10-基础篇/2"
        },
        {
          "url": "/sdoc/basic/stm32flash/126b0934555e1e98aa9081c5.html",
          "relativePath": "/sdoc/10-基础篇/50-STM32内部FLASH/LV010-FLASH操作流程.html",
          "frontmatter": {
            "title": "LV010-FLASH操作流程",
            "date": "2025-09-25 22:53:10",
            "icon": "famicons:logo-markdown",
            "permalink": "/sdoc/basic/stm32flash/126b0934555e1e98aa9081c5",
            "index": true,
            "tags": null,
            "categories": null,
            "copyright": false,
            "keywords": null,
            "cover": null,
            "comments": null,
            "mathjax": null,
            "top": null,
            "description": null,
            "tdoc": {
              "detailDate": {},
              "fulluuid": "8aa9081c5bfb4658bc14302518ab96b3",
              "useduuid": "8aa9081c5"
            }
          },
          "author": {
            "name": "苏木",
            "link": "https://github.com/docs-site"
          },
          "title": "LV010-FLASH操作流程",
          "date": "2025-09-25 22:53:10",
          "excerpt": "",
          "capture": "我这里使用的是STM32CubeMX来配置生成工程,使用的就是HAL库,由于内部Flash不需要我们来做初始化,所以软件不用配置,我们直接调用相应的驱动函数即可。这些可以操作内部Flash的函数声明都存在于 以下几个文件中:\n```c\nstm32f1xx_hal_flash_ex.h\nstm32f1xx_hal_flash.h \nstm32f1xx_hal_flash_ex.c\nstm32f1xx_hal_flash.c \n```\n关于Flash的相关资料,ST官方有另外的文档,叫做STM32F10xxx闪存编程手册,英文版在这里:STM32F10xxx Flash memory microc"
        },
        {
          "url": "/sdoc/basic/stm32flash/126b09345207167f3ed95339.html",
          "relativePath": "/sdoc/10-基础篇/50-STM32内部FLASH/LV001-内部FLASH简介.html",
          "frontmatter": {
            "title": "LV001-内部FLASH简介",
            "date": "2025-09-25 22:44:55",
            "icon": "famicons:logo-markdown",
            "permalink": "/sdoc/basic/stm32flash/126b09345207167f3ed95339",
            "index": true,
            "tags": null,
            "categories": null,
            "copyright": false,
            "keywords": null,
            "cover": null,
            "comments": null,
            "mathjax": null,
            "top": null,
            "description": null,
            "tdoc": {
              "detailDate": {},
              "fulluuid": "f3ed95339a054335bd7861fbbdfca984",
              "useduuid": "f3ed95339"
            }
          },
          "author": {
            "name": "苏木",
            "link": "https://github.com/docs-site"
          },
          "title": "LV001-内部FLASH简介",
          "date": "2025-09-25 22:44:55",
          "excerpt": "",
          "capture": "一、内部FLASH\n这里了解一下内部Flash的一些内容,并不涉及对内部Flash读写等相关操作。\n 1. FLASH\n 简介\nflash是存储芯片的一种,通过特定的程序可以修改里面的数据。FLASH在电子以及半导体领域内往往表示 Flash Memory 的意思,即平时所说的“闪存”,全名叫 Flash EEPROM Memory。它结合了ROM和RAM的长处,不仅具备电子可擦除可编程(EEPROM)的性能,还可以快速读取数据(NVRAM的优势),使数据不会因为断电而丢失。\n在STM32芯片内部有一个FLASH存储器,它主要用于存储代码,它是一种nor flash。我们在电脑上编写好应用程序"
        },
        {
          "url": "/sdoc/peripheral/i2c/126b09344f37186302faabd7.html",
          "relativePath": "/sdoc/20-基本外设篇/30-I2C/LV015-AT24C02使用实例.html",
          "frontmatter": {
            "title": "LV015-AT24C02使用实例",
            "date": "2025-09-25 22:37:35",
            "icon": "famicons:logo-markdown",
            "permalink": "/sdoc/peripheral/i2c/126b09344f37186302faabd7",
            "index": true,
            "tags": null,
            "categories": null,
            "copyright": false,
            "keywords": null,
            "cover": null,
            "comments": null,
            "mathjax": null,
            "top": null,
            "description": null,
            "tdoc": {
              "detailDate": {},
              "fulluuid": "302faabd7f05494cbdcffb39c1c91164",
              "useduuid": "302faabd7"
            }
          },
          "author": {
            "name": "苏木",
            "link": "https://github.com/docs-site"
          },
          "title": "LV015-AT24C02使用实例",
          "date": "2025-09-25 22:37:35",
          "excerpt": "",
          "capture": "一、硬件原理图\n&lt;img src=\"./LV015-AT24C02使用实例/img/image-20230507133622454.png\" alt=\"image-20230507133622454\" style=\"zoom:50%;\" /\n可以看到这里的AT24C02接在了PB6和PB7,也就是I2C1上边。\n 二、物理I2C读写AT24C02\n一般步骤如下:\n(1)配置通讯使用的目标引脚为开漏模式;\n(2)使能 I2C 外设的时钟;\n(3)配置 I2C 外设的模式、地址、速率等参数并使能 I2C 外设;\n(4)编写基本 I2C 按字节收发的函数;  \n(5)编写读写 EEPROM 存"
        },
        {
          "url": "/sdoc/peripheral/i2c/126b09344d8f021f00cacd6c.html",
          "relativePath": "/sdoc/20-基本外设篇/30-I2C/LV010-AT24C02简介.html",
          "frontmatter": {
            "title": "LV010-AT24C02简介",
            "date": "2025-09-25 22:33:11",
            "icon": "famicons:logo-markdown",
            "permalink": "/sdoc/peripheral/i2c/126b09344d8f021f00cacd6c",
            "index": true,
            "tags": null,
            "categories": null,
            "copyright": false,
            "keywords": null,
            "cover": null,
            "comments": null,
            "mathjax": null,
            "top": null,
            "description": null,
            "tdoc": {
              "detailDate": {},
              "fulluuid": "f00cacd6ccbd4a459325107dc47b447a",
              "useduuid": "f00cacd6c"
            }
          },
          "author": {
            "name": "苏木",
            "link": "https://github.com/docs-site"
          },
          "title": "LV010-AT24C02简介",
          "date": "2025-09-25 22:33:11",
          "excerpt": "",
          "capture": "一、EEPROM简介\nEEPROM (Electrically Erasable Programmable read only memory)是指带电可擦可编程只读存储器。是一种掉电后数据不丢失的存储芯片。 EEPROM 可以在电脑上或专用设备上擦除已有信息,重新编程。一般用在即插即用。\n我们这一节的笔记主要是关于AT24C02的使用,它是一个串行电可擦除和可编程只读存储器(EEPROM),总容量是256(2K/8)个字节,通过IIC通信。它是 Atmel 公司的一款芯片,我们我使用的战舰V3的开发板上时AT24C02BN,我们可以在这里找到它的数据手册:AT24C01A/02/04/08/1"
        },
        {
          "url": "/sdoc/peripheral/i2c/126b09344c01323883ac1ab4.html",
          "relativePath": "/sdoc/20-基本外设篇/30-I2C/LV001-STM32的I2C.html",
          "frontmatter": {
            "title": "LV001-STM32的I2C",
            "date": "2025-09-25 22:29:13",
            "icon": "famicons:logo-markdown",
            "permalink": "/sdoc/peripheral/i2c/126b09344c01323883ac1ab4",
            "index": true,
            "tags": null,
            "categories": null,
            "copyright": false,
            "keywords": null,
            "cover": null,
            "comments": null,
            "mathjax": null,
            "top": null,
            "description": null,
            "tdoc": {
              "detailDate": {},
              "fulluuid": "883ac1ab454e45c8903061818823ca7f",
              "useduuid": "883ac1ab4"
            }
          },
          "author": {
            "name": "苏木",
            "link": "https://github.com/docs-site"
          },
          "title": "LV001-STM32的I2C",
          "date": "2025-09-25 22:29:13",
          "excerpt": "",
          "capture": "一、I2C简介\n这一部分可以查看笔记60-通信专题/01-I2C协议/LV001-I2C简介.md,这篇笔记主要是关于I2C的物理层协议,读写时序以及各个信号的说明包括对各信号的模拟。\n 二、STM32的物理I2C\n 1. 物理I2C框图\n这一部分我们可以查看STM32中文参考手册的24 I2C接口一节:\n&lt;img src=\"./LV001-STM32的I2C/img/image-20230507110330416.png\" alt=\"image-20230507110330416\" style=\"zoom:50%;\" /\n 2. ①通信引脚\n通信引脚在框图中有三根:\n(1)SDA——数"
        },
        {
          "url": "/sdoc/peripheral/fsmc/sram/126b0924b2d20263b97733d0.html",
          "relativePath": "/sdoc/20-基本外设篇/25-FSMC/05-外部SRAM/LV015-外部SRAM读写实例.html",
          "frontmatter": {
            "title": "LV015-外部SRAM读写实例",
            "date": "2025-09-24 20:06:58",
            "icon": "famicons:logo-markdown",
            "permalink": "/sdoc/peripheral/fsmc/sram/126b0924b2d20263b97733d0",
            "index": true,
            "tags": null,
            "categories": null,
            "copyright": false,
            "keywords": null,
            "cover": null,
            "comments": null,
            "mathjax": null,
            "top": null,
            "description": null,
            "tdoc": {
              "detailDate": {},
              "fulluuid": "3b97733d0c5f43148008ceafa2203f32",
              "useduuid": "3b97733d0"
            }
          },
          "author": {
            "name": "苏木",
            "link": "https://github.com/docs-site"
          },
          "title": "LV015-外部SRAM读写实例",
          "date": "2025-09-24 20:06:58",
          "excerpt": "",
          "capture": "一、硬件原理图\n我使用的是正点原子战舰V3的板子,硬件连接如下图:\n&lt;img src=\"./LV015-外部SRAM读写实例/img/image-20230503175021794.png\" alt=\"image-20230503175021794\" style=\"zoom:50%;\" /\n 二、STM32CubeMX配置\n这里只关心FSMC的配置,其他的可以看前边的笔记。\n 1. FSMC配置\n 1.1 模式选择\n&lt;img src=\"./LV015-外部SRAM读写实例/img/image-20230515064458738.png\" alt=\"image-20230515064"
        },
        {
          "url": "/sdoc/peripheral/fsmc/fsmc-basic/126b0924b19533081adda526.html",
          "relativePath": "/sdoc/20-基本外设篇/25-FSMC/01-FSMC基础/LV010-相关HAL库函数.html",
          "frontmatter": {
            "title": "LV010-相关HAL库函数",
            "date": "2025-09-24 20:03:41",
            "icon": "famicons:logo-markdown",
            "permalink": "/sdoc/peripheral/fsmc/fsmc-basic/126b0924b19533081adda526",
            "index": true,
            "tags": null,
            "categories": null,
            "copyright": false,
            "keywords": null,
            "cover": null,
            "comments": null,
            "mathjax": null,
            "top": null,
            "description": null,
            "tdoc": {
              "detailDate": {},
              "fulluuid": "81adda5266e04132bfcad67ecceec69d",
              "useduuid": "81adda526"
            }
          },
          "author": {
            "name": "苏木",
            "link": "https://github.com/docs-site"
          },
          "title": "LV010-相关HAL库函数",
          "date": "2025-09-24 20:03:41",
          "excerpt": "",
          "capture": "一、库中的寄存器\n在 MDK 的寄存器定义里面,并没有定义 FSMC_BCRx、 FSMC_BTRx、 FSMC_BWTRx 等这个单独的寄存器,而是将他们进行了一些组合。FSMC_BCRx 和 FSMC_BTRx,组合成 BTCR[8]寄存器组,他们的对应关系如下:  \n```c\nBTCR[0]---\nBTCR[2]---&gt;FSMC_BCR2, BTCR[3]---&gt;FSMC_BTR2\nBTCR[4]---&gt;FSMC_BCR3, BTCR[5]---&gt;FSMC_BTR3\nBTCR[6]---&gt;FSMC_BCR4, BTCR[7]---&gt;FSMC_BTR4\n"
        },
        {
          "url": "/sdoc/peripheral/fsmc/fsmc-basic/126b092499b000721416c9a0.html",
          "relativePath": "/sdoc/20-基本外设篇/25-FSMC/01-FSMC基础/LV005-存储器映射与控制器.html",
          "frontmatter": {
            "title": "LV005-存储器映射与控制器",
            "date": "2025-09-24 19:42:24",
            "icon": "famicons:logo-markdown",
            "permalink": "/sdoc/peripheral/fsmc/fsmc-basic/126b092499b000721416c9a0",
            "index": true,
            "tags": null,
            "categories": null,
            "copyright": false,
            "keywords": null,
            "cover": null,
            "comments": null,
            "mathjax": null,
            "top": null,
            "description": null,
            "tdoc": {
              "detailDate": {},
              "fulluuid": "21416c9a03d8478188e3897a2c59aa5e",
              "useduuid": "21416c9a0"
            }
          },
          "author": {
            "name": "苏木",
            "link": "https://github.com/docs-site"
          },
          "title": "LV005-存储器映射与控制器",
          "date": "2025-09-24 19:42:24",
          "excerpt": "",
          "capture": "一、存储器映射?\n 1. 直接访问地址?\nFSMC连接好外部的存储器并初始化后,就可以直接通过访问地址来读写数据。FSMC访问存储器的方式与I2C EEPROM、SPI FLASH的不一样,后两种方式都需要控制I2C或SPI总线给存储器发送地址,然后获取数据;在程序里,这个地址和数据都需要分开使用不同的变量存储,并且访问时还需要使用代码控制发送读写命令。而使用FSMC外接存储器时,其存储单元是映射到STM32的内部寻址空间的;在程序里,定义一个指向这些地址的指针,然后就可以通过指针直接修改该存储单元的内容,FSMC外设会自动完成数据访问过程,读写命令之类的操作不需要程序控制。\n 2. FSMC"
        },
        {
          "url": "/sdoc/peripheral/fsmc/fsmc-basic/126b092492553b23e8704ba7.html",
          "relativePath": "/sdoc/20-基本外设篇/25-FSMC/01-FSMC基础/LV001-FSMC简介.html",
          "frontmatter": {
            "title": "LV001-FSMC简介",
            "date": "2025-09-24 19:23:41",
            "icon": "famicons:logo-markdown",
            "permalink": "/sdoc/peripheral/fsmc/fsmc-basic/126b092492553b23e8704ba7",
            "index": true,
            "tags": null,
            "categories": null,
            "copyright": false,
            "keywords": null,
            "cover": null,
            "comments": null,
            "mathjax": null,
            "top": null,
            "description": null,
            "tdoc": {
              "detailDate": {},
              "fulluuid": "3e8704ba79214a3cbb9ab231d637b62e",
              "useduuid": "3e8704ba7"
            }
          },
          "author": {
            "name": "苏木",
            "link": "https://github.com/docs-site"
          },
          "title": "LV001-FSMC简介",
          "date": "2025-09-24 19:23:41",
          "excerpt": "",
          "capture": "这一部分我们可以参考 STM32中文参考手册的 19 灵活的静态存储器控制器(FSMC) 一节。\n 一、FSMC简介\n 1. 什么是FSMC\nFSMC,Flexible static memory controller,即灵活的静态存储控制器,能够与同步或异步存储器和 16 位 PC 存储器卡连接,STM32F1 的 FSMC 接口支持包括 SRAM、 NAND FLASH、 NOR FLASH 和 PSRAM 等存储器,但是不能驱动如SDRAM这种动态的存储器。  而在STM32F429系列的控制器中,它具有FMC外设,支持控制SDRAM存储器。\nSTM32F103ZET6的内部有64KB的"
        },
        {
          "url": "/sdoc/peripheral/fsmc/sram/126b09248e5b007fcadf7acc.html",
          "relativePath": "/sdoc/20-基本外设篇/25-FSMC/05-外部SRAM/LV001-概述.html",
          "frontmatter": {
            "title": "LV001-概述",
            "date": "2025-09-24 19:13:23",
            "icon": "famicons:logo-markdown",
            "permalink": "/sdoc/peripheral/fsmc/sram/126b09248e5b007fcadf7acc",
            "index": true,
            "tags": null,
            "categories": null,
            "copyright": false,
            "keywords": null,
            "cover": null,
            "comments": null,
            "mathjax": null,
            "top": null,
            "description": null,
            "tdoc": {
              "detailDate": {},
              "fulluuid": "fcadf7accc90458fa4cab2cebf963be3",
              "useduuid": "fcadf7acc"
            }
          },
          "author": {
            "name": "苏木",
            "link": "https://github.com/docs-site"
          },
          "title": "LV001-概述",
          "date": "2025-09-24 19:13:23",
          "excerpt": "",
          "capture": "一、什么是SRAM\n这个参考:10-基础篇/01-概述/LV010-常见存储器.md\n 二、为什么要扩展SRAM?\nSTM32控制器芯片内部有一定大小的SRAM及FLASH作为内存和程序存储空间,程序下载的时候是存放在内部的FLASH中的,在程序运行过程中,会有一些变量或者其他的东西存放在SRAM中运行,这就跟我们PC电脑上的内存一样。当程序较大,内存和程序空间不足时,就需要在STM32芯片的外部扩展存储器了。STM32F103ZE系列芯片可以扩展外部SRAM用作内存。\n给STM32芯片扩展内存与给PC扩展内存的原理是一样的,只是PC上一般以内存条的形式扩展,而且内存条实质是由多个内存颗粒(即"
        },
        {
          "url": "/sdoc/peripheral/fsmc/sram/126b09248db61d861c837fd7.html",
          "relativePath": "/sdoc/20-基本外设篇/25-FSMC/05-外部SRAM/LV005-IS62WV51216简介.html",
          "frontmatter": {
            "title": "LV005-IS62WV51216简介",
            "date": "2025-09-24 19:11:58",
            "icon": "famicons:logo-markdown",
            "permalink": "/sdoc/peripheral/fsmc/sram/126b09248db61d861c837fd7",
            "index": true,
            "tags": null,
            "categories": null,
            "copyright": false,
            "keywords": null,
            "cover": null,
            "comments": null,
            "mathjax": null,
            "top": null,
            "description": null,
            "tdoc": {
              "detailDate": {},
              "fulluuid": "61c837fd7bf24e47b455ebbf97c03db7",
              "useduuid": "61c837fd7"
            }
          },
          "author": {
            "name": "苏木",
            "link": "https://github.com/docs-site"
          },
          "title": "LV005-IS62WV51216简介",
          "date": "2025-09-24 19:11:58",
          "excerpt": "",
          "capture": "一、简介\n IS62WV51216是ISSI(Integrated Silicon Solution, Inc)公司生产的一颗16位宽512K(512\\*16,即1M字节)容量的CMOS静态内存(SRAM)芯片。开发板上使用的完整的型号是 IS62WV51216BLL,它有以下特点:\n(1)高速。具有45ns/55ns访问速度。\n(2)低功耗。操作时:36mW;待机时:12uW。\n(3)兼容TTL电平。\n(4)全静态操作。不需要刷新和时钟电路。 \n(5)三态输出。\n(6)字节控制功能。支持高/低字节控制。\n 二、引脚说明\n&lt;img src=\"./LV005-IS62WV51216简介/i"
        },
        {
          "url": "/sdoc/peripheral/fsmc/sram/126b09248ce51200a79d393f.html",
          "relativePath": "/sdoc/20-基本外设篇/25-FSMC/05-外部SRAM/LV002-XM8A51216简介.html",
          "frontmatter": {
            "title": "LV002-XM8A51216简介",
            "date": "2025-09-24 19:09:49",
            "icon": "famicons:logo-markdown",
            "permalink": "/sdoc/peripheral/fsmc/sram/126b09248ce51200a79d393f",
            "index": true,
            "tags": null,
            "categories": null,
            "copyright": false,
            "keywords": null,
            "cover": null,
            "comments": null,
            "mathjax": null,
            "top": null,
            "description": null,
            "tdoc": {
              "detailDate": {},
              "fulluuid": "0a79d393fee944b89889bdacfda6ea95",
              "useduuid": "0a79d393f"
            }
          },
          "author": {
            "name": "苏木",
            "link": "https://github.com/docs-site"
          },
          "title": "LV002-XM8A51216简介",
          "date": "2025-09-24 19:09:49",
          "excerpt": "",
          "capture": "一、简介\nXM8A51216 是深圳星忆存储科技有限公司(星忆存储 )生产的一颗 16 位宽 512K(512*16,即 1M 字节)容量的 CMOS 静态内存芯片。我们可以在这里找到它的芯片手册:。该芯片具有如下几个特点 :\n(1)高速。 具有最高访问速度 10/12ns。\n(2)低功耗。\n(3)TTL 电平兼容。\n(4)全静态操作。不需要刷新和时钟电路。\n(5)三态输出。\n(6)字节控制功能。支持高/低字节控制。  \n 二、功能框图\n功能框图我们可以看 XM8A51216V33(8M).pdf (xingmem.com).pdf) 的 Logic Block Diagram:\n&lt;im"
        },
        {
          "url": "/sdoc/dev-tool/keil/126b0913865605b5493dc70e.html",
          "relativePath": "/sdoc/01-开发工具/01-keil/LV017-Listing目录文件.html",
          "frontmatter": {
            "title": "LV017-Listing目录文件",
            "date": "2025-09-23 07:51:58",
            "icon": "famicons:logo-markdown",
            "permalink": "/sdoc/dev-tool/keil/126b0913865605b5493dc70e",
            "index": true,
            "tags": null,
            "categories": null,
            "copyright": false,
            "keywords": null,
            "cover": null,
            "comments": null,
            "mathjax": null,
            "top": null,
            "description": null,
            "tdoc": {
              "detailDate": {},
              "fulluuid": "5493dc70ee6849e0b32a91f39d8e2488",
              "useduuid": "5493dc70e"
            }
          },
          "author": {
            "name": "苏木",
            "link": "https://github.com/docs-site"
          },
          "title": "LV017-Listing目录文件",
          "date": "2025-09-23 07:51:58",
          "excerpt": "",
          "capture": "本篇笔记主要是参考的野火的文档。使用的工程呢可以去这里下载:ebf_stm32f103_badao_std_code: 野火STM32F103 霸道开发板 标准库教程配套代码 (gitee.com)\n\n在Listing目录下包含了.map及.lst文件,它们都是文本格式的,可使用Windows的记事本软件打开。其中lst文件仅包含了一些汇编符号的链接信息,这些文件中重点是map文件。\n 一、Listing目录位置选择\n这里存放的都是链接器链接过程中用到的或者生成的文件,我们也是可以自行配置目录位置的:\n&lt;img src=\"./LV017-Listing目录文件/img/image-202"
        },
        {
          "url": "/sdoc/dev-tool/keil/126b0913857d3670d6f0eef1.html",
          "relativePath": "/sdoc/01-开发工具/01-keil/LV015-MDK工程文件简介.html",
          "frontmatter": {
            "title": "LV015-MDK工程文件简介",
            "date": "2025-09-23 07:49:41",
            "icon": "famicons:logo-markdown",
            "permalink": "/sdoc/dev-tool/keil/126b0913857d3670d6f0eef1",
            "index": true,
            "tags": null,
            "categories": null,
            "copyright": false,
            "keywords": null,
            "cover": null,
            "comments": null,
            "mathjax": null,
            "top": null,
            "description": null,
            "tdoc": {
              "detailDate": {},
              "fulluuid": "0d6f0eef153042fc862dc752cb0e3c2d",
              "useduuid": "0d6f0eef1"
            }
          },
          "author": {
            "name": "苏木",
            "link": "https://github.com/docs-site"
          },
          "title": "LV015-MDK工程文件简介",
          "date": "2025-09-23 07:49:41",
          "excerpt": "",
          "capture": "本篇笔记主要是参考的野火的文档。使用的工程呢可以去这里下载:ebf_stm32f103_badao_std_code: 野火STM32F103 霸道开发板 标准库教程配套代码 (gitee.com)\n\n 一、MDK工程文件类型\n 1. Project工程文件\n&lt;table&gt;\n    &lt;tbody&gt;\n        &lt;tr&gt;&lt;td align=\"left\"&gt;后缀&lt;/td&gt;&lt;td align=\"left\"&gt;说明&lt;/td&gt;&lt;/tr&gt;\n        &lt;tr&gt;&lt;td align=\"left"
        },
        {
          "url": "/sdoc/dev-tool/keil/126b091384f9220a0ff9cf1d.html",
          "relativePath": "/sdoc/01-开发工具/01-keil/LV016-Output目录文件.html",
          "frontmatter": {
            "title": "LV016-Output目录文件",
            "date": "2025-09-23 07:48:09",
            "icon": "famicons:logo-markdown",
            "permalink": "/sdoc/dev-tool/keil/126b091384f9220a0ff9cf1d",
            "index": true,
            "tags": null,
            "categories": null,
            "copyright": false,
            "keywords": null,
            "cover": null,
            "comments": null,
            "mathjax": null,
            "top": null,
            "description": null,
            "tdoc": {
              "detailDate": {},
              "fulluuid": "a0ff9cf1dff34a1790997424e34bac30",
              "useduuid": "a0ff9cf1d"
            }
          },
          "author": {
            "name": "苏木",
            "link": "https://github.com/docs-site"
          },
          "title": "LV016-Output目录文件",
          "date": "2025-09-23 07:48:09",
          "excerpt": "",
          "capture": "本篇笔记主要是参考的野火的文档。使用的工程呢可以去这里下载:ebf_stm32f103_badao_std_code: 野火STM32F103 霸道开发板 标准库教程配套代码 (gitee.com)\n\n 一、Output目录位置选择\nOutput目录是存放输出文件以及一些中间文件的目录,这个目录是可以配置的:\n&lt;img src=\"./LV016-Output目录文件/img/image-20230529200416215-1758358981825-2.png\" alt=\"image-20230529200416215\" style=\"zoom: 67%;\" /&gt;\n点击 MDK 中"
        },
        {
          "url": "/sdoc/communication/serial-port/126b0904421d06db7b197798.html",
          "relativePath": "/sdoc/60-通信专题/10-串口/LV001-串口通信简介.html",
          "frontmatter": {
            "title": "LV001-串口通信简介",
            "date": "2025-09-22 07:46:53",
            "icon": "famicons:logo-markdown",
            "permalink": "/sdoc/communication/serial-port/126b0904421d06db7b197798",
            "index": true,
            "tags": null,
            "categories": null,
            "copyright": false,
            "keywords": null,
            "cover": null,
            "comments": null,
            "mathjax": null,
            "top": null,
            "description": null,
            "tdoc": {
              "detailDate": {},
              "fulluuid": "b7b197798fd74f3fb97abd23e12eb7bc",
              "useduuid": "b7b197798"
            }
          },
          "author": {
            "name": "苏木",
            "link": "https://github.com/docs-site"
          },
          "title": "LV001-串口通信简介",
          "date": "2025-09-22 07:46:53",
          "excerpt": "",
          "capture": "一、串口通信简介\n 1. 串口简介\n串口通讯(Serial Communication)是一种设备间非常常用的串行通讯方式,因为它简单便捷,因此大部分电子设备都支持该通讯方式。串口全称叫做串行接口,通常也叫做 COM 接口,串行接口指的是数据一个一个的顺序传输,通信线路简单。使用两条线即可实现双向通信,一条用于发送,一条用于接收。串口通信距离远,但是速度相对会低,串口是一种很常用的工业接口。我们常用串行外设接口有UART和USART两种:\n- UART:UART 全称是 Universal Asynchronous Receiver/Trasmitter,也就是异步串行收发器。\n- USART"
        },
        {
          "url": "/sdoc/communication/i2c/126b09043fca31869028172d.html",
          "relativePath": "/sdoc/60-通信专题/01-I2C协议/LV020-AT24C02实例分析.html",
          "frontmatter": {
            "title": "LV020-AT24C02实例分析",
            "date": "2025-09-22 07:40:58",
            "icon": "famicons:logo-markdown",
            "permalink": "/sdoc/communication/i2c/126b09043fca31869028172d",
            "index": true,
            "tags": null,
            "categories": null,
            "copyright": false,
            "keywords": null,
            "cover": null,
            "comments": null,
            "mathjax": null,
            "top": null,
            "description": null,
            "tdoc": {
              "detailDate": {},
              "fulluuid": "69028172daa144dcbab34851329c3348",
              "useduuid": "69028172d"
            }
          },
          "author": {
            "name": "苏木",
            "link": "https://github.com/docs-site"
          },
          "title": "LV020-AT24C02实例分析",
          "date": "2025-09-22 07:40:58",
          "excerpt": "",
          "capture": "AT24C02 是一个 256 (2K/8)个字节的 EEPROM ,它使用的接口就是 I2C ,在它的芯片手册中,给出了读写时序的时序图,我们就以此器件为例分析一下 I2C 的读写时序。\n 一、单字节写时序\n&lt;img src=\"./LV020-AT24C02实例分析/img/image-20220903160151362.png\" alt=\"image-20220903160151362\" style=\"zoom:50%;\" /\n(1)开始信号。\n(2)发送  I2C  设备地址,每个  I2C  器件都有一个设备地址,通过发送具体的设备地址来决定访问哪个  I2C  器件。这是一个 "
        },
        {
          "url": "/sdoc/communication/i2c/126b09043f2d250b963bfb0d.html",
          "relativePath": "/sdoc/60-通信专题/01-I2C协议/LV001-I2C简介.html",
          "frontmatter": {
            "title": "LV001-I2C简介",
            "date": "2025-09-22 07:39:01",
            "icon": "famicons:logo-markdown",
            "permalink": "/sdoc/communication/i2c/126b09043f2d250b963bfb0d",
            "index": true,
            "tags": null,
            "categories": null,
            "copyright": false,
            "keywords": null,
            "cover": null,
            "comments": null,
            "mathjax": null,
            "top": null,
            "description": null,
            "tdoc": {
              "detailDate": {},
              "fulluuid": "b963bfb0deb74fcaa8f060b7b084d3d8",
              "useduuid": "b963bfb0d"
            }
          },
          "author": {
            "name": "苏木",
            "link": "https://github.com/docs-site"
          },
          "title": "LV001-I2C简介",
          "date": "2025-09-22 07:39:01",
          "excerpt": "",
          "capture": "一、I2C简介\n 1. I2C介绍\nI2C 就是 I2C ( Inter-Integrated Circuit )总线,是一种多主从架构串行通信总线。在1980年由 PHILIPS  (飞利浦)公司开发的两线式串行、同步、半双工、多主多从的通信总线,用于连接微控制器及其外围设备。它可以让主板、嵌入式系统或手机连接低速周边设备, 如今在嵌入式领域是非常常见。\n它是由数据线  SDA  和时钟  SCL  构成的串行总线,可发送和接收数据。在  CPU  与被控  IC  之间、  IC  与  IC  之间进行双向传送数据, 标准 I2C 总线传输速率可到 100kbps ,高速  I2C  总"
        },
        {
          "url": "/sdoc/communication/126b09043e1c12685fda3fb8.html",
          "relativePath": "/sdoc/60-通信专题/LV001-通信概述.html",
          "frontmatter": {
            "title": "LV001-通信概述",
            "date": "2025-09-22 07:36:28",
            "icon": "famicons:logo-markdown",
            "permalink": "/sdoc/communication/126b09043e1c12685fda3fb8",
            "index": true,
            "tags": null,
            "categories": null,
            "copyright": false,
            "keywords": null,
            "cover": null,
            "comments": null,
            "mathjax": null,
            "top": null,
            "description": null,
            "tdoc": {
              "detailDate": {},
              "fulluuid": "85fda3fb8df54e90807dd03d5831b5bf",
              "useduuid": "85fda3fb8"
            }
          },
          "author": {
            "name": "苏木",
            "link": "https://github.com/docs-site"
          },
          "title": "LV001-通信概述",
          "date": "2025-09-22 07:36:28",
          "excerpt": "",
          "capture": "一、通信的两种方式\n处理器与外部设备通信,按数据传送的方式,通讯可分为串行通讯与并行通讯,但是一般我们看到的大多数都是串行通信。\n 1.串行通信\n串行通讯是指设备之间通过少量数据信号线(一般是 8 根以下), 地线以及控制信号线,按数据位形式一位一位地传输数据的通讯方式。\n- 传输原理:数据按位顺序传输\n- 优点:占用处理器引脚资源少\n- 缺点:传输速度相对较慢\n&lt;img src=\"./LV001-通信概述/img/image-20220918111415861.png\" alt=\"image-20220918111415861\" style=\"zoom:33%;\" /\n 2.并行通信\n"
        },
        {
          "url": "/sdoc/peripheral/watchdog/126b09043c29000296442c6e.html",
          "relativePath": "/sdoc/20-基本外设篇/20-看门狗/LV010-看门狗使用实例.html",
          "frontmatter": {
            "title": "LV010-看门狗使用实例",
            "date": "2025-09-22 07:31:29",
            "icon": "famicons:logo-markdown",
            "permalink": "/sdoc/peripheral/watchdog/126b09043c29000296442c6e",
            "index": true,
            "tags": null,
            "categories": null,
            "copyright": false,
            "keywords": null,
            "cover": null,
            "comments": null,
            "mathjax": null,
            "top": null,
            "description": null,
            "tdoc": {
              "detailDate": {},
              "fulluuid": "296442c6e9ba4600b39cd12075ea87af",
              "useduuid": "296442c6e"
            }
          },
          "author": {
            "name": "苏木",
            "link": "https://github.com/docs-site"
          },
          "title": "LV010-看门狗使用实例",
          "date": "2025-09-22 07:31:29",
          "excerpt": "",
          "capture": "一、独立看门狗\n 1. 硬件设计\n独立看门狗属于 STM32F1 的内部资源,只需要软件设置好即可正常工作。我们通过LED灯来指示 STM32F1 的复位情况来看指示独立看门狗的喂狗情况。\n 2. STM32CubeMX配置  \n 2.1 IWDG配置\n&lt;img src=\"./LV010-看门狗使用实例/img/image-20230513193914903.png\" alt=\"image-20230513193914903\" style=\"zoom:80%;\" /\n独立看门狗的配置时间比较简单:\n①、选择IWDG;\n②、勾选Activated,表示启用独立看门狗;\n③、看门狗的时钟分频"
        },
        {
          "url": "/sdoc/peripheral/watchdog/126b09043ae916195cb39541.html",
          "relativePath": "/sdoc/20-基本外设篇/20-看门狗/LV001-看门狗简介.html",
          "frontmatter": {
            "title": "LV001-看门狗简介",
            "date": "2025-09-22 07:28:09",
            "icon": "famicons:logo-markdown",
            "permalink": "/sdoc/peripheral/watchdog/126b09043ae916195cb39541",
            "index": true,
            "tags": null,
            "categories": null,
            "copyright": false,
            "keywords": null,
            "cover": null,
            "comments": null,
            "mathjax": null,
            "top": null,
            "description": null,
            "tdoc": {
              "detailDate": {},
              "fulluuid": "95cb3954118d49beb6d6912a9e3cb522",
              "useduuid": "95cb39541"
            }
          },
          "author": {
            "name": "苏木",
            "link": "https://github.com/docs-site"
          },
          "title": "LV001-看门狗简介",
          "date": "2025-09-22 07:28:09",
          "excerpt": "",
          "capture": "一、看门狗简介\n 1. 简介\n在由单片机构成的微型计算机系统中,由于单片机的工作常常会受到来自外界电磁场的干扰,造成程序的跑飞,而陷入死循环,程序的正常运行被打断,由单片机控制的系统无法继续工作,会造成整个系统的陷入停滞状态,发生不可预料的后果,所以出于对单片机运行状态进行实时监测的考虑,便产生了一种专门用于监测单片机程序运行状态的模块或者芯片,俗称“看门狗”(watchdog) 。\n看门狗主要用于解决什么问题呢?在启动正常运行的时候,系统不能复位。在系统跑飞(程序异常执行)的情况,系统复位,程序重新执行。看门狗的本质也是一个定时器,在启动后,需要在一定时间内再给它一个信号,俗称“喂狗”,如果"
        },
        {
          "url": "/sdoc/peripheral/timer/126b08f71bb31f61f9e3c819.html",
          "relativePath": "/sdoc/20-基本外设篇/15-定时器/LV105-自定义延时函数.html",
          "frontmatter": {
            "title": "LV105-自定义延时函数",
            "date": "2025-09-21 21:28:51",
            "icon": "famicons:logo-markdown",
            "permalink": "/sdoc/peripheral/timer/126b08f71bb31f61f9e3c819",
            "index": true,
            "tags": null,
            "categories": null,
            "copyright": false,
            "keywords": null,
            "cover": null,
            "comments": null,
            "mathjax": null,
            "top": null,
            "description": null,
            "tdoc": {
              "detailDate": {},
              "fulluuid": "1f9e3c81978544cfa5b36e225514bb0d",
              "useduuid": "1f9e3c819"
            }
          },
          "author": {
            "name": "苏木",
            "link": "https://github.com/docs-site"
          },
          "title": "LV105-自定义延时函数",
          "date": "2025-09-21 21:28:51",
          "excerpt": "",
          "capture": "在20-基本外设篇/15-定时器/LV105-自定义延时函数.md中我们分析了HAL库中的HAL_Delay()函数,它是借助SysTick定时器的中断来实现的,就意味着不能在其他中断中使用这个延时函数,那么有没有其他办法实现延时?\n 一、时钟摘取法  \n我们来看一下正点原子SYSTEM目录下的delay.c中的delay_us函数。\n 1. delay_init()\n在main函数中是这样调用的:\n```c\ndelay_init(72);\n```\n这个函数的定义(删除了OS相关的内容)如下:\n```c\n/**\n * @brief     初始化延迟函数\n * @param     syscl"
        },
        {
          "url": "/sdoc/peripheral/timer/126b08f7176d34627620ad1b.html",
          "relativePath": "/sdoc/20-基本外设篇/15-定时器/LV100-SysTick定时器简介.html",
          "frontmatter": {
            "title": "LV100-SysTick定时器简介",
            "date": "2025-09-21 21:17:57",
            "icon": "famicons:logo-markdown",
            "permalink": "/sdoc/peripheral/timer/126b08f7176d34627620ad1b",
            "index": true,
            "tags": null,
            "categories": null,
            "copyright": false,
            "keywords": null,
            "cover": null,
            "comments": null,
            "mathjax": null,
            "top": null,
            "description": null,
            "tdoc": {
              "detailDate": {},
              "fulluuid": "27620ad1b6704f3ab64b6bc4d14b88f4",
              "useduuid": "27620ad1b"
            }
          },
          "author": {
            "name": "苏木",
            "link": "https://github.com/docs-site"
          },
          "title": "LV100-SysTick定时器简介",
          "date": "2025-09-21 21:17:57",
          "excerpt": "",
          "capture": "这一部分我们可以查看Cortex-M3 权威指南的 第8章NVIC与中断控制 中的 SysTick定时器  小节。\n 一、SysTick定时器简介\nSysTick定时器(又名系统滴答定时器)是存在于Cortex-M3的一个定时器,只要是ARM Cotex-M系列内核的MCU都包含这个定时器。使用内核的SysTick定时器来实现延时,可以不占用系统定时器,节约资源。由于SysTick是在CPU核内部实现的,跟MCU外设无关, 因此它的代码可以在不同厂家之间移植。  \nSysTick定时器被捆绑在NVIC中,用于产生SYSTICK异常(异常号: 15)。在以前,大多操作系统需要一个硬件定时器来产生"
        },
        {
          "url": "/sdoc/peripheral/timer/126b08f6ae2512a51a9eec42.html",
          "relativePath": "/sdoc/20-基本外设篇/15-定时器/LV090-高级定时器PWM输入.html",
          "frontmatter": {
            "title": "LV090-高级定时器PWM输入",
            "date": "2025-09-21 18:48:05",
            "icon": "famicons:logo-markdown",
            "permalink": "/sdoc/peripheral/timer/126b08f6ae2512a51a9eec42",
            "index": true,
            "tags": null,
            "categories": null,
            "copyright": false,
            "keywords": null,
            "cover": null,
            "comments": null,
            "mathjax": null,
            "top": null,
            "description": null,
            "tdoc": {
              "detailDate": {},
              "fulluuid": "51a9eec423e4412c99aa8247ccd2092d",
              "useduuid": "51a9eec42"
            }
          },
          "author": {
            "name": "苏木",
            "link": "https://github.com/docs-site"
          },
          "title": "LV090-高级定时器PWM输入",
          "date": "2025-09-21 18:48:05",
          "excerpt": "",
          "capture": "本小节我们来学习使用高级定时器 PWM 输入模式, 此模式是输入捕获模式的一个特例。PWM 输入模式经常被应用于测量 PWM 脉宽和频率。 PWM 输入模式在《STM32F10xxx 参考手册_V10(中文版) .pdf》 手册 216 页有详细的文字描述。\n 一、工作原理\n&lt;img src=\"./LV090-高级定时器PWM输入/img/image-20240114135116438.png\" alt=\"image-20240114135116438\" style=\"zoom:50%;\" /\n第一,确定定时器时钟源。本实验中我们使用内部时钟(CK_INT), F1 系列高级定时器挂载在"
        },
        {
          "url": "/sdoc/peripheral/timer/126b08f6ad8f2e0487d6c438.html",
          "relativePath": "/sdoc/20-基本外设篇/15-定时器/LV085-高级定时器互补输出.html",
          "frontmatter": {
            "title": "LV085-高级定时器互补输出",
            "date": "2025-09-21 18:46:55",
            "icon": "famicons:logo-markdown",
            "permalink": "/sdoc/peripheral/timer/126b08f6ad8f2e0487d6c438",
            "index": true,
            "tags": null,
            "categories": null,
            "copyright": false,
            "keywords": null,
            "cover": null,
            "comments": null,
            "mathjax": null,
            "top": null,
            "description": null,
            "tdoc": {
              "detailDate": {},
              "fulluuid": "487d6c4384224a459898d149b83609e0",
              "useduuid": "487d6c438"
            }
          },
          "author": {
            "name": "苏木",
            "link": "https://github.com/docs-site"
          },
          "title": "LV085-高级定时器互补输出",
          "date": "2025-09-21 18:46:55",
          "excerpt": "",
          "capture": "一、基本概念\n什么是互补输出?还带死区控制?  我们来简单了解一下。关于互补输出和死区插入的更多内容可以看《STM32F10xxx 参考手册_V10(中文版) .pdf》手册的 13.3.11 小节 。\n 1. 互补输出\n&lt;img src=\"./LV085-高级定时器互补输出/img/image-20240114131925473.png\" alt=\"image-20240114131925473\" style=\"zoom:50%;\" /\n&lt;p align=\"center\"&gt;\n    图一-1 互补输出\n&lt;/p&gt;\n上图中, CH1 输出黄色的 PWM,它的互补通道"
        },
        {
          "url": "/sdoc/peripheral/timer/126b08f6aca0253099c9ba29.html",
          "relativePath": "/sdoc/20-基本外设篇/15-定时器/LV080-高级定时器输出比较模式.html",
          "frontmatter": {
            "title": "LV080-高级定时器输出比较模式",
            "date": "2025-09-21 18:44:16",
            "icon": "famicons:logo-markdown",
            "permalink": "/sdoc/peripheral/timer/126b08f6aca0253099c9ba29",
            "index": true,
            "tags": null,
            "categories": null,
            "copyright": false,
            "keywords": null,
            "cover": null,
            "comments": null,
            "mathjax": null,
            "top": null,
            "description": null,
            "tdoc": {
              "detailDate": {},
              "fulluuid": "099c9ba29781487ab77ef3977ecd7122",
              "useduuid": "099c9ba29"
            }
          },
          "author": {
            "name": "苏木",
            "link": "https://github.com/docs-site"
          },
          "title": "LV080-高级定时器输出比较模式",
          "date": "2025-09-21 18:44:16",
          "excerpt": "",
          "capture": "一、输出比较模式输出PWM\n我们来学习使用高级定时器输出比较模式下翻转功能,通过定时器 4 个通道分别输出 4 个 50%占空比、不同相位的 PWM。\n输出比较模式下翻转功能作用是:当计数器的值等于捕获/比较寄存器影子寄存器的值时,OC1REF 发生翻转,进而控制通道输出(OCx)翻转。通过翻转功能实现输出 PWM 的具体原理如下: PWM 频率由自动重载寄存器(TIMx_ARR)的值决定,在这个过程中,只要自动重载寄存器的值不变,那么 PWM 占空比就固定为 50%。我们可以通过捕获/比较寄存器(TIMx_CCRx)的值改变 PWM 的相位。生成 PWM 的原理如图 :\n&lt;img sr"
        },
        {
          "url": "/sdoc/peripheral/timer/126b08f6ac4f2bb02b42403e.html",
          "relativePath": "/sdoc/20-基本外设篇/15-定时器/LV075-高级定时器PWM输出.html",
          "frontmatter": {
            "title": "LV075-高级定时器PWM输出",
            "date": "2025-09-21 18:43:35",
            "icon": "famicons:logo-markdown",
            "permalink": "/sdoc/peripheral/timer/126b08f6ac4f2bb02b42403e",
            "index": true,
            "tags": null,
            "categories": null,
            "copyright": false,
            "keywords": null,
            "cover": null,
            "comments": null,
            "mathjax": null,
            "top": null,
            "description": null,
            "tdoc": {
              "detailDate": {},
              "fulluuid": "02b42403e6334b1e88b3aefe535488bf",
              "useduuid": "02b42403e"
            }
          },
          "author": {
            "name": "苏木",
            "link": "https://github.com/docs-site"
          },
          "title": "LV075-高级定时器PWM输出",
          "date": "2025-09-21 18:43:35",
          "excerpt": "",
          "capture": "一、基本原理\n要实现定时器输出指定个数 PWM,只需要掌握下面几点内容:\n- 第一,定时器是如何输出 PWM 的,这部分的知识和前面是一样的。但是需要注意的是:我们需要把 MOE 位置 1,这样高级定时器的通道才能输出。\n- 第二,要清楚重复计数器特性,设置重复计数器寄存器 RCR 的值为 N,那么更新事件将在定时器发生 N+1 次上溢或下溢时发生。换句话来说就是,想要指定输出 N 个 PWM,只需要把N-1 写入 RCR 寄存器。因为在边沿对齐模式下,定时器溢出周期对应着 PWM 周期,我们只要在更新事件发生时,停止输出 PWM 就行。\n- 第三,为了保证定时器输出指定个数的 PWM 后,定"
        },
        {
          "url": "/sdoc/peripheral/timer/126b08f6abf821065c6674f2.html",
          "relativePath": "/sdoc/20-基本外设篇/15-定时器/LV070-高级定时器简介.html",
          "frontmatter": {
            "title": "LV070-高级定时器简介",
            "date": "2025-09-21 18:42:48",
            "icon": "famicons:logo-markdown",
            "permalink": "/sdoc/peripheral/timer/126b08f6abf821065c6674f2",
            "index": true,
            "tags": null,
            "categories": null,
            "copyright": false,
            "keywords": null,
            "cover": null,
            "comments": null,
            "mathjax": null,
            "top": null,
            "description": null,
            "tdoc": {
              "detailDate": {},
              "fulluuid": "65c6674f24194a5c905c5931e3b1bb25",
              "useduuid": "65c6674f2"
            }
          },
          "author": {
            "name": "苏木",
            "link": "https://github.com/docs-site"
          },
          "title": "LV070-高级定时器简介",
          "date": "2025-09-21 18:42:48",
          "excerpt": "",
          "capture": "从这一节开始主要来学习高级定时器, STM32F103 有 2 个高级定时器(TIM1 和 TIM8)。将会通过四个实验来学习高级定时器的各个功能,分别是高级定时器输出指定个数 PWM 实验、高级定时器输出比较模式实验、高级定时器互补输出带死区控制实验和高级定时器 PWM 输入模式实验。  \n 一、高级定时器框图\n高级定时器的框图和通用定时器框图很类似,只是添加了其它的一些功能,如:重复计数器、带死区控制的互补输出通道、断路输入等。这些功能在高级定时器框图的位置如下:  \n&lt;img src=\"./LV070-高级定时器简介/img/image-20240114124949607.png\""
        },
        {
          "url": "/sdoc/peripheral/timer/126b08f6ab873bc74e57e381.html",
          "relativePath": "/sdoc/20-基本外设篇/15-定时器/LV050-通用定时器脉冲计数.html",
          "frontmatter": {
            "title": "LV050-通用定时器脉冲计数",
            "date": "2025-09-21 18:41:35",
            "icon": "famicons:logo-markdown",
            "permalink": "/sdoc/peripheral/timer/126b08f6ab873bc74e57e381",
            "index": true,
            "tags": null,
            "categories": null,
            "copyright": false,
            "keywords": null,
            "cover": null,
            "comments": null,
            "mathjax": null,
            "top": null,
            "description": null,
            "tdoc": {
              "detailDate": {},
              "fulluuid": "74e57e3815ac43a9b2ad64b853530fde",
              "useduuid": "74e57e381"
            }
          },
          "author": {
            "name": "苏木",
            "link": "https://github.com/docs-site"
          },
          "title": "LV050-通用定时器脉冲计数",
          "date": "2025-09-21 18:41:35",
          "excerpt": "",
          "capture": "前面我们介绍了通用定时器的四类时钟源,这一节我们来学习使用通用定时器的外部时钟模式 1 这类时钟源。我们通过脉冲计数实验来学习。\n 一、需求说明\n前面的三个通用定时器实验的时钟源都是来自内部时钟 (CK_INT),在脉冲计数的使用中我们将使用外部时钟模式 1:外部输入引脚 (TIx)作为定时器的时钟源。关于这个外部输入引脚(TIx),我们使用 WK_UP 按键按下产生的高电平脉冲作为定时器的计数器时钟,每按下一次按键产生一次高电平脉冲,计数器加一。  \n 二、定时器资源说明\n&lt;img src=\"./LV050-通用定时器脉冲计数/img/image-20240114104935667.p"
        },
        {
          "url": "/sdoc/peripheral/timer/126b08f6ab6404f5fdfb5648.html",
          "relativePath": "/sdoc/20-基本外设篇/15-定时器/LV045-通用定时器输入捕获.html",
          "frontmatter": {
            "title": "LV045-通用定时器输入捕获",
            "date": "2025-09-21 18:41:00",
            "icon": "famicons:logo-markdown",
            "permalink": "/sdoc/peripheral/timer/126b08f6ab6404f5fdfb5648",
            "index": true,
            "tags": null,
            "categories": null,
            "copyright": false,
            "keywords": null,
            "cover": null,
            "comments": null,
            "mathjax": null,
            "top": null,
            "description": null,
            "tdoc": {
              "detailDate": {},
              "fulluuid": "5fdfb5648d1542adb31bc692aaebfac4",
              "useduuid": "5fdfb5648"
            }
          },
          "author": {
            "name": "苏木",
            "link": "https://github.com/docs-site"
          },
          "title": "LV045-通用定时器输入捕获",
          "date": "2025-09-21 18:41:00",
          "excerpt": "",
          "capture": "一、脉宽测量基本原理\n输入捕获模式可以用来测量脉冲宽度或者测量频率。我们以测量脉宽为例,用一个简图来说明输入捕获脉宽测量原理:\n&lt;img src=\"./LV045-通用定时器输入捕获/img/image-20240114103053113.png\" alt=\"image-20240114103053113\" style=\"zoom: 33%;\" /\nt1 到 t2 的时间段,就是我们需要测量的高电平时间。测量方法如下:假如定时器工作在递增计数模式,首先设置定时器通道 x 为上升沿捕获,这样在 t1 时刻上升沿到来时,就会发生捕获事件。这里我们还会打开捕获中断,所以捕获事件发生就意味着捕获"
        },
        {
          "url": "/sdoc/peripheral/timer/126b08f6aac20ab7bc66d777.html",
          "relativePath": "/sdoc/20-基本外设篇/15-定时器/LV040-通用定时器PWM输出.html",
          "frontmatter": {
            "title": "LV040-通用定时器PWM输出",
            "date": "2025-09-21 18:39:38",
            "icon": "famicons:logo-markdown",
            "permalink": "/sdoc/peripheral/timer/126b08f6aac20ab7bc66d777",
            "index": true,
            "tags": null,
            "categories": null,
            "copyright": false,
            "keywords": null,
            "cover": null,
            "comments": null,
            "mathjax": null,
            "top": null,
            "description": null,
            "tdoc": {
              "detailDate": {},
              "fulluuid": "7bc66d777a344e838bab8b97634f96bc",
              "useduuid": "7bc66d777"
            }
          },
          "author": {
            "name": "苏木",
            "link": "https://github.com/docs-site"
          },
          "title": "LV040-通用定时器PWM输出",
          "date": "2025-09-21 18:39:38",
          "excerpt": "",
          "capture": "一、PWM产生原理\n脉冲宽度调制(PWM),是英文“Pulse Width Modulation”的缩写,简称脉宽调制,是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术。我们可以让定时器产生PWM,在计数器频率固定时, PWM 频率或者周期由自动重载寄存器(TIMx_ARR)的值决定,其占空比由捕获/比较寄存器(TIMx_CCRx)的值决定。 PWM 产生原理示意图如下图所示:  \n&lt;img src=\"./LV040-通用定时器PWM输出/img/image-20240114095044325.png\" alt=\"image-20240114095044325\" styl"
        },
        {
          "url": "/sdoc/peripheral/timer/126b08f6aa9f293ebbce26b2.html",
          "relativePath": "/sdoc/20-基本外设篇/15-定时器/LV035-通用定时器的中断.html",
          "frontmatter": {
            "title": "LV035-通用定时器的中断",
            "date": "2025-09-21 18:39:03",
            "icon": "famicons:logo-markdown",
            "permalink": "/sdoc/peripheral/timer/126b08f6aa9f293ebbce26b2",
            "index": true,
            "tags": null,
            "categories": null,
            "copyright": false,
            "keywords": null,
            "cover": null,
            "comments": null,
            "mathjax": null,
            "top": null,
            "description": null,
            "tdoc": {
              "detailDate": {},
              "fulluuid": "ebbce26b2eed4f0e8e7db13c33566c30",
              "useduuid": "ebbce26b2"
            }
          },
          "author": {
            "name": "苏木",
            "link": "https://github.com/docs-site"
          },
          "title": "LV035-通用定时器的中断",
          "date": "2025-09-21 18:39:03",
          "excerpt": "",
          "capture": "一、相关寄存器\n我们来学习使用通用定时器中断,学习 TIM2/TIM3/TIM4/TIM5 的几个与定时器中断相关且重要的寄存器。主要以定时器3为例。\n 1. 控制寄存器 1(TIMx_CR1)\nTIM2/TIM3/TIM4/TIM5 的控制寄存器 1 描述如图:\n&lt;img src=\"./LV035-通用定时器的中断/img/image-20240114094348633.png\" alt=\"image-20240114094348633\" style=\"zoom:50%;\" /\n上图中只截出了中断需要用的一些位,其中:  \n位 7(APRE)用于控制自动重载寄存器是否进行缓冲,如果 A"
        },
        {
          "url": "/sdoc/peripheral/timer/126b08f6aa441b536809798e.html",
          "relativePath": "/sdoc/20-基本外设篇/15-定时器/LV030-通用定时器简介.html",
          "frontmatter": {
            "title": "LV030-通用定时器简介",
            "date": "2025-09-21 18:38:12",
            "icon": "famicons:logo-markdown",
            "permalink": "/sdoc/peripheral/timer/126b08f6aa441b536809798e",
            "index": true,
            "tags": null,
            "categories": null,
            "copyright": false,
            "keywords": null,
            "cover": null,
            "comments": null,
            "mathjax": null,
            "top": null,
            "description": null,
            "tdoc": {
              "detailDate": {},
              "fulluuid": "36809798e68046309b813b9706a23f8a",
              "useduuid": "36809798e"
            }
          },
          "author": {
            "name": "苏木",
            "link": "https://github.com/docs-site"
          },
          "title": "LV030-通用定时器简介",
          "date": "2025-09-21 18:38:12",
          "excerpt": "",
          "capture": "一、STM32的通用定时器\nSTM32F103 的通用定时器有 4 个,如下所示:  \n&lt;img src=\"./LV030-通用定时器简介/img/image-20240114085044691.png\" alt=\"image-20240114085044691\" /\n该表可以参考《STM32数据手册》的2.3.17 Timers and watchdogs小节。由上表知道: 该 STM32 芯片的计数器都是 16 位的。 通用定时器和高级定时器其实也就是在基本定时器的基础上,添加了一些其他功能,如: 输入捕获、 输出比较、输出 PWM 和单脉冲模式等。 而通用定时器数量较多,其特性也有"
        },
        {
          "url": "/sdoc/peripheral/timer/basic/126b08f6a8e32e3427f3a2b2.html",
          "relativePath": "/sdoc/20-基本外设篇/15-定时器/LV001-基本定时器简介.html",
          "frontmatter": {
            "title": "LV001-基本定时器简介",
            "date": "2025-09-21 18:34:59",
            "icon": "famicons:logo-markdown",
            "permalink": "/sdoc/peripheral/timer/basic/126b08f6a8e32e3427f3a2b2",
            "index": true,
            "tags": null,
            "categories": null,
            "copyright": false,
            "keywords": null,
            "cover": null,
            "comments": null,
            "mathjax": null,
            "top": null,
            "description": null,
            "tdoc": {
              "detailDate": {},
              "fulluuid": "427f3a2b26fc476299e1f6f52f2c33ad",
              "useduuid": "427f3a2b2"
            }
          },
          "author": {
            "name": "苏木",
            "link": "https://github.com/docs-site"
          },
          "title": "LV001-基本定时器简介",
          "date": "2025-09-21 18:34:59",
          "excerpt": "",
          "capture": "一、基本定时器简介\n 1. STM32的基本定时器\nSTM32F103 有两个基本定时器 TIM6 和 TIM7,它们的功能完全相同,资源是完全独立的,可以同时使用。其主要特性如下: 16 位自动重载递增计数器, 16 位可编程预分频器,预分频系数 1\\~65536,用于对计数器时钟频率进行分频,还可以触发 DAC 的同步电路,以及生成中断/DMA 请求。  \n 2. 基本定时器框图  \n&lt;img src=\"./LV001-基本定时器简介/img/image-20240114083136570.png\" alt=\"image-20240114083136570\" style=\"zoom:"
        },
        {
          "url": "/sdoc/peripheral/uart/126b08f61664097f4a0617fc.html",
          "relativePath": "/sdoc/20-基本外设篇/10-UART/LV020-串口收发实例.html",
          "frontmatter": {
            "title": "LV020-串口收发实例",
            "date": "2025-09-21 14:59:56",
            "icon": "famicons:logo-markdown",
            "permalink": "/sdoc/peripheral/uart/126b08f61664097f4a0617fc",
            "index": true,
            "tags": null,
            "categories": null,
            "copyright": false,
            "keywords": null,
            "cover": null,
            "comments": null,
            "mathjax": null,
            "top": null,
            "description": null,
            "tdoc": {
              "detailDate": {},
              "fulluuid": "f4a0617fc94447a8962e262d9db98842",
              "useduuid": "f4a0617fc"
            }
          },
          "author": {
            "name": "苏木",
            "link": "https://github.com/docs-site"
          },
          "title": "LV020-串口收发实例",
          "date": "2025-09-21 14:59:56",
          "excerpt": "",
          "capture": "一、串口打印实现\n说明,这里使用STM32CubeM进行配置和导出工程。\n 1. 硬件设计\n我使用的是正点原子的战舰V3,串口部分电路如下,串口 1 与 USB 串口并没有在 PCB 上连接在一起,需要通过跳线帽来连接一下。这里我们把 P4 的 RXD 和 TXD 用跳线帽与 PA9 和 PA10 连接起来。  \n&lt;img src=\"./LV020-串口收发实例/img/image-20230502122716375.png\" alt=\"image-20230502122716375\" style=\"zoom: 67%;\" /\n 2. STM32CubeMX配置\n注意这里的时钟都没配置,"
        },
        {
          "url": "/sdoc/peripheral/uart/126b08f6146d2d238b102738.html",
          "relativePath": "/sdoc/20-基本外设篇/10-UART/LV010-STM32的串口.html",
          "frontmatter": {
            "title": "LV010-STM32的串口",
            "date": "2025-09-21 14:54:53",
            "icon": "famicons:logo-markdown",
            "permalink": "/sdoc/peripheral/uart/126b08f6146d2d238b102738",
            "index": true,
            "tags": null,
            "categories": null,
            "copyright": false,
            "keywords": null,
            "cover": null,
            "comments": null,
            "mathjax": null,
            "top": null,
            "description": null,
            "tdoc": {
              "detailDate": {},
              "fulluuid": "38b1027380d146cb959e571687931c97",
              "useduuid": "38b102738"
            }
          },
          "author": {
            "name": "苏木",
            "link": "https://github.com/docs-site"
          },
          "title": "LV010-STM32的串口",
          "date": "2025-09-21 14:54:53",
          "excerpt": "",
          "capture": "一、STM32的串口\n 1. 概述\n在嵌入式中,很多MCU和外设模块都集成有UART外设。 STM32F103有3个通用同步异步收发器( Universal synchronous asynchronous receiver transmitter, USART), 2个通用异步收发器( Universalasynchronous receiver transmitter, UART) 。 USART和UART的主要区别在于, USART支持同步通信, 该模式有一根时钟线提供时钟。这里需要说明一下,由于在STM中文或者是英文参考手册,相关的介绍章节主要是关于USART,但是他们都是通用的,所以"
        },
        {
          "url": "/sdoc/peripheral/uart/126b08f60edb3b6ac7962cbf.html",
          "relativePath": "/sdoc/20-基本外设篇/10-UART/LV001-串口通信简介.html",
          "frontmatter": {
            "title": "LV001-串口通信简介",
            "date": "2025-09-21 14:40:27",
            "icon": "famicons:logo-markdown",
            "permalink": "/sdoc/peripheral/uart/126b08f60edb3b6ac7962cbf",
            "index": true,
            "tags": null,
            "categories": null,
            "copyright": false,
            "keywords": null,
            "cover": null,
            "comments": null,
            "mathjax": null,
            "top": null,
            "description": null,
            "tdoc": {
              "detailDate": {},
              "fulluuid": "ac7962cbf7d245659539f5436bb59e37",
              "useduuid": "ac7962cbf"
            }
          },
          "author": {
            "name": "苏木",
            "link": "https://github.com/docs-site"
          },
          "title": "LV001-串口通信简介",
          "date": "2025-09-21 14:40:27",
          "excerpt": "",
          "capture": "一、数据通信\n在单片机的应用中,数据通信是必不可少的一部分,比如:单片机和上位机、单片机和外围器件之间,它们都有数据通信的需求。由于设备之间的电气特性、传输速率、可靠性要求各不相同,于是就有了各种通信类型、通信协议,我们最常的有: USART、 IIC、 SPI、 CAN、 USB等。\n 1. 数据通信方式\n按数据通信方式分类,可分为串行通信和并行通信两种。串行和并行的对比如下图所示:  \n串行通信的基本特征是数据逐位顺序依次传输,优点是传输线少、 布线成本低、 灵活度高等优点,一般用于近距离人机交互, 特殊处理后也可以用于远距离, 缺点就是传输速率低。而并行通信是数据各位可以通过多条线同时传"
        },
        {
          "url": "/sdoc/basic/stm32clock/126b08f5dcd1392ef8558043.html",
          "relativePath": "/sdoc/10-基础篇/40-STM32时钟/LV010-STM32F1的SYSCLK.html",
          "frontmatter": {
            "title": "LV010-STM32F1的SYSCLK",
            "date": "2025-09-21 13:12:17",
            "icon": "famicons:logo-markdown",
            "permalink": "/sdoc/basic/stm32clock/126b08f5dcd1392ef8558043",
            "index": true,
            "tags": null,
            "categories": null,
            "copyright": false,
            "keywords": null,
            "cover": null,
            "comments": null,
            "mathjax": null,
            "top": null,
            "description": null,
            "tdoc": {
              "detailDate": {},
              "fulluuid": "ef8558043211434e9696dd7586e40951",
              "useduuid": "ef8558043"
            }
          },
          "author": {
            "name": "苏木",
            "link": "https://github.com/docs-site"
          },
          "title": "LV010-STM32F1的SYSCLK",
          "date": "2025-09-21 13:12:17",
          "excerpt": "<p>这一部分我们来详细了解一下系统时钟SYSCLK。</p>\n",
          "capture": "这一部分我们来详细了解一下系统时钟SYSCLK。\n 一、PLL 作为系统时钟源  \n在 STM32 中, 锁相环的输出也可以作为芯片系统的时钟源。 根据STM32F1的时钟结构,使用锁相环时只需要进行三个部分的配置。为了方便查看,这里直接截取STM32CubeMX中时钟树中使用 PLL 作为系统时钟源的配置部分,  \n- PLLXTPRE: HSE 分频器作为 PLL 输入 (HSE divider for PLL entry)  \n即图 11.1.2.1 在标注为①的地方, 它专门用于 HSE, ST 设计它有两种方式,并把它的控制功能放在 RCC_CFGR 寄存器中, 我们引用如图:\n从 "
        },
        {
          "url": "/sdoc/basic/stm32clock/126b08f5d89727a6ee395582.html",
          "relativePath": "/sdoc/10-基础篇/40-STM32时钟/LV001-STM32F1时钟系统.html",
          "frontmatter": {
            "title": "LV001-STM32F1时钟系统",
            "date": "2025-09-21 13:01:35",
            "icon": "famicons:logo-markdown",
            "permalink": "/sdoc/basic/stm32clock/126b08f5d89727a6ee395582",
            "index": true,
            "tags": null,
            "categories": null,
            "copyright": false,
            "keywords": null,
            "cover": null,
            "comments": null,
            "mathjax": null,
            "top": null,
            "description": null,
            "tdoc": {
              "detailDate": {},
              "fulluuid": "6ee395582b8f401e806f3f6b8aac7e4a",
              "useduuid": "6ee395582"
            }
          },
          "author": {
            "name": "苏木",
            "link": "https://github.com/docs-site"
          },
          "title": "LV001-STM32F1时钟系统",
          "date": "2025-09-21 13:01:35",
          "excerpt": "",
          "capture": "一、STM32时钟树概述\n 1. 时钟系统\n时钟系统是由振荡器(信号源)、定时唤醒器、分频器等组成的电路。常用的信号源有晶体振荡器和RC振荡器。\n时钟是嵌入式系统的脉搏,处理器内核在时钟驱动下完成指令执行,状态变换等动作,外设部件在时钟的驱动下完成各种工作,比如串口数据的发送、A/D转换、定时器计数等等。因此时钟对于计算机系统是至关重要的,通常时钟系统出现问题也是致命的,比如振荡器不起振、振荡不稳、停振等。\n&lt;img src=\"./LV001-STM32F1时钟系统/img/image-20230502201120397.png\" alt=\"image-20230502201120397"
        },
        {
          "url": "/sdoc/peripheral/gpio/126b08f596281cc89a3bc4c6.html",
          "relativePath": "/sdoc/20-基本外设篇/01-GPIO/LV045-外部中断实例.html",
          "frontmatter": {
            "title": "LV045-外部中断实例",
            "date": "2025-09-21 11:31:28",
            "icon": "famicons:logo-markdown",
            "permalink": "/sdoc/peripheral/gpio/126b08f596281cc89a3bc4c6",
            "index": true,
            "tags": null,
            "categories": null,
            "copyright": false,
            "keywords": null,
            "cover": null,
            "comments": null,
            "mathjax": null,
            "top": null,
            "description": null,
            "tdoc": {
              "detailDate": {},
              "fulluuid": "89a3bc4c6a9b4249afce4152ca5d1241",
              "useduuid": "89a3bc4c6"
            }
          },
          "author": {
            "name": "苏木",
            "link": "https://github.com/docs-site"
          },
          "title": "LV045-外部中断实例",
          "date": "2025-09-21 11:31:28",
          "excerpt": "",
          "capture": "一、硬件原理图\n&lt;img src=\"./LV045-外部中断实例/img/image-20230501153706041.png\" alt=\"image-20230501153706041\" style=\"zoom: 67%;\" /\n 二、STM32CubeMX配置\n 1. GPIO引脚配置\n在STM32CubeMX软件中,我们选择好引脚后,GPIO的功能中会自动对应好与EXIT的关系,当然,我们也可以看 STM32中文参考手册的 9.2.5 外部中断/事件线路映像一节。\n(1)PA0 所接按键按下时为高电平,默认时我们设置为下拉,也就是默认时低电平:\n&lt;img src=\"./LV"
        },
        {
          "url": "/sdoc/peripheral/gpio/126b08f58a5c2c09e1d6100f.html",
          "relativePath": "/sdoc/20-基本外设篇/01-GPIO/LV040-外部中断.html",
          "frontmatter": {
            "title": "LV040-外部中断",
            "date": "2025-09-21 11:01:08",
            "icon": "famicons:logo-markdown",
            "permalink": "/sdoc/peripheral/gpio/126b08f58a5c2c09e1d6100f",
            "index": true,
            "tags": null,
            "categories": null,
            "copyright": false,
            "keywords": null,
            "cover": null,
            "comments": null,
            "mathjax": null,
            "top": null,
            "description": null,
            "tdoc": {
              "detailDate": {},
              "fulluuid": "9e1d6100f7d74737974bd9674a8ba8c0",
              "useduuid": "9e1d6100f"
            }
          },
          "author": {
            "name": "苏木",
            "link": "https://github.com/docs-site"
          },
          "title": "LV040-外部中断",
          "date": "2025-09-21 11:01:08",
          "excerpt": "",
          "capture": "&gt;\n&gt;- 10-基础篇/30-STM32的中断/LV001-STM32中断简介.md\n&gt;- 10-基础篇/01-概述/LV040-CortexM3异常.md\n 一、EXTI\n 1. 简介\nSTM32的中断和中断优先级,知道了所有外设中断都由NVIC管理,比如USART、 ADC、 I2C、 SPI等。 GPIO产生的中断也不例外,但在给NVIC管理之前,还有一个EXTI( External interrupt/event controller,外部中断/事件控制器) 先处理一下 :\n&lt;img src=\"./LV040-外部中断/img/image-20230501150"
        },
        {
          "url": "/sdoc/basic/stm32interrupt/126b08f57241322fa604782d.html",
          "relativePath": "/sdoc/10-基础篇/30-STM32的中断/LV001-STM32中断简介.html",
          "frontmatter": {
            "title": "LV001-STM32中断简介",
            "date": "2025-09-21 10:39:37",
            "icon": "famicons:logo-markdown",
            "permalink": "/sdoc/basic/stm32interrupt/126b08f57241322fa604782d",
            "index": true,
            "tags": null,
            "categories": null,
            "copyright": false,
            "keywords": null,
            "cover": null,
            "comments": null,
            "mathjax": null,
            "top": null,
            "description": null,
            "tdoc": {
              "detailDate": {},
              "fulluuid": "fa604782d9e94117829d0f1a00c0d99d",
              "useduuid": "fa604782d"
            }
          },
          "author": {
            "name": "苏木",
            "link": "https://github.com/docs-site"
          },
          "title": "LV001-STM32中断简介",
          "date": "2025-09-21 10:39:37",
          "excerpt": "",
          "capture": "一、基本概念\n生活中,有这样一个场景,我现在正在看电视剧,然后这个时候突然有人敲门,我该怎么做?正常我们应该是暂停电视剧,然后去开门,处理有人敲门这件事,这件事处理完后,回到电视机前,继续看电视剧,这就是一个中断。\n在处理器中,中断是一个过程,即CPU在正常执行程序的过程中,遇到外部/内部的紧急事件需要处理,暂时中止当前程序的执行,转而去为处理紧急的事件,待处理完毕后再返回被打断的程序处继续往下执行。中断在计算机多任务处理,尤其是即时系统中尤为重要。比如uCOS,FreeRTOS等。\n中断存在的意义就在于中断能提高CPU的效率,同时能对突发事件做出实时处理。实现程序的并行化,实现嵌入式系统进程"
        },
        {
          "url": "/sdoc/peripheral/gpio/126b08e8078f1f2b7ad1d6a6.html",
          "relativePath": "/sdoc/20-基本外设篇/01-GPIO/LV030-按键检测.html",
          "frontmatter": {
            "title": "LV030-按键检测",
            "date": "2025-09-20 22:46:55",
            "icon": "famicons:logo-markdown",
            "permalink": "/sdoc/peripheral/gpio/126b08e8078f1f2b7ad1d6a6",
            "index": true,
            "tags": null,
            "categories": null,
            "copyright": false,
            "keywords": null,
            "cover": null,
            "comments": null,
            "mathjax": null,
            "top": null,
            "description": null,
            "tdoc": {
              "detailDate": {},
              "fulluuid": "b7ad1d6a65df41fab1ae6bd4b2de28b9",
              "useduuid": "b7ad1d6a6"
            }
          },
          "author": {
            "name": "苏木",
            "link": "https://github.com/docs-site"
          },
          "title": "LV030-按键检测",
          "date": "2025-09-20 22:46:55",
          "excerpt": "",
          "capture": "一、基本步骤\n- (1)使能IO口时钟。\n- (2)初始化IO口模式,包括GPIO工作模式(输入)、IO口速度。\n- (3)循环读取IO电平,判断按键是否按下。\n 二、硬件原理图\n&lt;img src=\"./LV030-按键检测/img/image-20230506221837788.png\" alt=\"image-20230506221837788\" style=\"zoom:50%;\" /\n 三、STM32CubeMX配置\n&lt;img src=\"./LV030-按键检测/img/image-20230506222110861.png\" alt=\"image-20230506222110"
        },
        {
          "url": "/sdoc/peripheral/gpio/126b08e805ca1e15c40474c4.html",
          "relativePath": "/sdoc/20-基本外设篇/01-GPIO/LV020-GPIO控制LED.html",
          "frontmatter": {
            "title": "LV020-GPIO控制LED",
            "date": "2025-09-20 22:42:02",
            "icon": "famicons:logo-markdown",
            "permalink": "/sdoc/peripheral/gpio/126b08e805ca1e15c40474c4",
            "index": true,
            "tags": null,
            "categories": null,
            "copyright": false,
            "keywords": null,
            "cover": null,
            "comments": null,
            "mathjax": null,
            "top": null,
            "description": null,
            "tdoc": {
              "detailDate": {},
              "fulluuid": "5c40474c47fc44e49114f4489f7fb359",
              "useduuid": "5c40474c4"
            }
          },
          "author": {
            "name": "苏木",
            "link": "https://github.com/docs-site"
          },
          "title": "LV020-GPIO控制LED",
          "date": "2025-09-20 22:42:02",
          "excerpt": "",
          "capture": "一、基本步骤\n这个实例主要是通过GPIO点亮LED灯。一般步骤如下:\n- (1)使能IO口时钟。\n- (2)初始化IO口模式,包括GPIO工作模式(输出)、IO口速度。使用STM32CubeMX软件来进行图形化配置的话要注意一下上下拉的设置,不然很可能有莫名其妙的坑。\n- (3)操作IO口,输出高低电平。\n【注意】可以一次初始化一个IO组下的多个IO,前提是这些IO口的配置方式一样。\n 二、硬件原理图\n&lt;img src=\"./LV020-GPIO控制LED/img/image-20230506221050587.png\" alt=\"image-20230506221050587\" sty"
        },
        {
          "url": "/sdoc/peripheral/gpio/126b08e804d303ad5b541ecd.html",
          "relativePath": "/sdoc/20-基本外设篇/01-GPIO/LV010-输入输出模式详解.html",
          "frontmatter": {
            "title": "LV010-输入输出模式详解",
            "date": "2025-09-20 22:39:55",
            "icon": "famicons:logo-markdown",
            "permalink": "/sdoc/peripheral/gpio/126b08e804d303ad5b541ecd",
            "index": true,
            "tags": null,
            "categories": null,
            "copyright": false,
            "keywords": null,
            "cover": null,
            "comments": null,
            "mathjax": null,
            "top": null,
            "description": null,
            "tdoc": {
              "detailDate": {},
              "fulluuid": "d5b541ecde0f4e1799e17d09e88a33fa",
              "useduuid": "d5b541ecd"
            }
          },
          "author": {
            "name": "苏木",
            "link": "https://github.com/docs-site"
          },
          "title": "LV010-输入输出模式详解",
          "date": "2025-09-20 22:39:55",
          "excerpt": "",
          "capture": "这篇笔记主要是详细学习一下GPIO输入输出各种模式(推挽、开漏、准双向端口)。\n 一、概述\n 1. IO模式说明\n概括地说,IO的功能模式大致可以分为输入、输出以及输入输出双向三大类。其中作为基本输入IO,相对比较简单,主要涉及的知识点就是高阻态;作为输出IO,相比于输入复杂一些,工作模式主要有开漏(Open Drain)模式和推挽(Push-Pull)模式,这一部分涉及的知识点比较多;对于输入输出IO,容易产生疑惑的地方是准双向和双向端口的区别。\n 2. MOS管基础\n这里学习一下P-MOS和N-MOS导通的条件,前面后边都给我整糊涂了,这里记录一下,如下图为P-MOS和N-MOS导通时的电"
        },
        {
          "url": "/sdoc/peripheral/gpio/126b08e802d21f6e4f658296.html",
          "relativePath": "/sdoc/20-基本外设篇/01-GPIO/LV001-STM32的GPIO简介.html",
          "frontmatter": {
            "title": "LV001-STM32的GPIO简介",
            "date": "2025-09-20 22:34:42",
            "icon": "famicons:logo-markdown",
            "permalink": "/sdoc/peripheral/gpio/126b08e802d21f6e4f658296",
            "index": true,
            "tags": null,
            "categories": null,
            "copyright": false,
            "keywords": null,
            "cover": null,
            "comments": null,
            "mathjax": null,
            "top": null,
            "description": null,
            "tdoc": {
              "detailDate": {},
              "fulluuid": "e4f658296d8f440694a80e81f31777d4",
              "useduuid": "e4f658296"
            }
          },
          "author": {
            "name": "苏木",
            "link": "https://github.com/docs-site"
          },
          "title": "LV001-STM32的GPIO简介",
          "date": "2025-09-20 22:34:42",
          "excerpt": "",
          "capture": "一、GPIO简介\nGPIO是通用输入输出端口的简称,简单来说就是STM32可控制的引脚,STM32芯片的GPIO引脚与外部设备连接起来,从而实现与外部通讯、控制以及数据采集的功能。 STM32芯片的GPIO被分成很多组,每组有16个引脚(也有可能少于16个),如型号为STM32F103ZET6型号的芯片有GPIOA、GPIOB、GPIOC至GPIOG共7组GPIO,一共就有16x7=112个IO,该芯片一共144个引脚,其中GPIO引脚就占了一大部分,所有的GPIO引脚都有基本的输入输出功能。\n最基本的输出功能是由STM32控制引脚输出高、低电平,实现开关控制,如把GPIO引脚接入到LED灯,"
        },
        {
          "url": "/sdoc/basic/stm32setup/126b08e7afad049a561ccf1b.html",
          "relativePath": "/sdoc/10-基础篇/20-STM32的启动/LV010-在内部SRAM调试.html",
          "frontmatter": {
            "title": "LV010-在内部SRAM调试",
            "date": "2025-09-20 20:21:57",
            "icon": "famicons:logo-markdown",
            "permalink": "/sdoc/basic/stm32setup/126b08e7afad049a561ccf1b",
            "index": true,
            "tags": null,
            "categories": null,
            "copyright": false,
            "keywords": null,
            "cover": null,
            "comments": null,
            "mathjax": null,
            "top": null,
            "description": null,
            "tdoc": {
              "detailDate": {},
              "fulluuid": "a561ccf1b5d3443c85b0f21280803c3a",
              "useduuid": "a561ccf1b"
            }
          },
          "author": {
            "name": "苏木",
            "link": "https://github.com/docs-site"
          },
          "title": "LV010-在内部SRAM调试",
          "date": "2025-09-20 20:21:57",
          "excerpt": "",
          "capture": "一、在RAM中调试代码\n 1. 简介\n一般情况下,我们在 MDK 中编写工程应用后,调试时都是把程序下载到芯片的内部 FLASH 运行测试的,代码的 CODE 及 RW-data 的内容被写入到内部 FLASH 中存储。但在某些应用场合下却不希望或不能修改内部 FLASH 的内容,这时就可以使用 RAM 调试功能了,它的本质是把原来存储在内部 FLASH 的代码 (CODE 及 RW-data 的内容) 改为存储到 SRAM 中 (内部 SRAM 或外部 SDRAM 均可),芯片复位后从 SRAM 中加载代码并运行。 \n 2. 优缺点\n把代码下载到 RAM 中调试有如下优点 :\n(1)下载程序"
        },
        {
          "url": "/sdoc/basic/stm32setup/126b08e78de70b59cd9ba362.html",
          "relativePath": "/sdoc/10-基础篇/20-STM32的启动/LV005-启动过程.html",
          "frontmatter": {
            "title": "LV005-启动过程",
            "date": "2025-09-20 19:35:11",
            "icon": "famicons:logo-markdown",
            "permalink": "/sdoc/basic/stm32setup/126b08e78de70b59cd9ba362",
            "index": true,
            "tags": null,
            "categories": null,
            "copyright": false,
            "keywords": null,
            "cover": null,
            "comments": null,
            "mathjax": null,
            "top": null,
            "description": null,
            "tdoc": {
              "detailDate": {},
              "fulluuid": "9cd9ba36208d49f99352645293a0d904",
              "useduuid": "9cd9ba362"
            }
          },
          "author": {
            "name": "苏木",
            "link": "https://github.com/docs-site"
          },
          "title": "LV005-启动过程",
          "date": "2025-09-20 19:35:11",
          "excerpt": "",
          "capture": "这一部分主要是分析STM32的启动流程,我们将会接触到内部FLASH的相关内容。\n 一、内部FLASH\n这里了解一下内部Flash的一些内容,并不涉及对内部Flash读写等相关操作。\n 1. FLASH简介\nflash是存储芯片的一种,通过特定的程序可以修改里面的数据。FLASH在电子以及半导体领域内往往表示 Flash Memory 的意思,即平时所说的“闪存”,全名叫 Flash EEPROM Memory。它结合了ROM和RAM的长处,不仅具备电子可擦除可编程(EEPROM)的性能,还可以快速读取数据(NVRAM的优势),使数据不会因为断电而丢失。\n在STM32芯片内部有一个FLASH存"
        },
        {
          "url": "/sdoc/basic/stm32setup/126b08e788e83383285742cb.html",
          "relativePath": "/sdoc/10-基础篇/20-STM32的启动/LV001-启动文件.html",
          "frontmatter": {
            "title": "LV001-启动文件",
            "date": "2025-09-20 19:22:32",
            "icon": "famicons:logo-markdown",
            "permalink": "/sdoc/basic/stm32setup/126b08e788e83383285742cb",
            "index": true,
            "tags": null,
            "categories": null,
            "copyright": false,
            "keywords": null,
            "cover": null,
            "comments": null,
            "mathjax": null,
            "top": null,
            "description": null,
            "tdoc": {
              "detailDate": {},
              "fulluuid": "3285742cb8d24fba98867646d8e8231b",
              "useduuid": "3285742cb"
            }
          },
          "author": {
            "name": "苏木",
            "link": "https://github.com/docs-site"
          },
          "title": "LV001-启动文件",
          "date": "2025-09-20 19:22:32",
          "excerpt": "",
          "capture": "这一节我们来分析一下MDK工程中的STM32启动文件。\n 一、启动方式\n- 参考10-基础篇/20-STM32的启动/LV005-启动过程.md和Cortex-M3 权威指南的3.8 复位序列\n在离开复位状态后,CM3做的第一件事就是读取下列两个32位整数的值:\n(1)从地址0x0000,0000处取出MSP的初始值。 \n(2)从地址0x0000,0004 处取出PC的初始值——这个值是复位向量,LSB必须是1。然后从这个值所对应的地址处取指。 \n&lt;img src=\"./LV001-启动文件/img/image-20250924071704950.png\" alt=\"image-2025"
        },
        {
          "url": "/sdoc/basic/stm32basic/126b08e7828f108bc0b2f2dc.html",
          "relativePath": "/sdoc/10-基础篇/10-STM32基础/LV030-STM32程序下载.html",
          "frontmatter": {
            "title": "LV030-STM32程序下载",
            "date": "2025-09-20 19:06:07",
            "icon": "famicons:logo-markdown",
            "permalink": "/sdoc/basic/stm32basic/126b08e7828f108bc0b2f2dc",
            "index": true,
            "tags": null,
            "categories": null,
            "copyright": false,
            "keywords": null,
            "cover": null,
            "comments": null,
            "mathjax": null,
            "top": null,
            "description": null,
            "tdoc": {
              "detailDate": {},
              "fulluuid": "bc0b2f2dc98042cb8e44dc7aa1995faa",
              "useduuid": "bc0b2f2dc"
            }
          },
          "author": {
            "name": "苏木",
            "link": "https://github.com/docs-site"
          },
          "title": "LV030-STM32程序下载",
          "date": "2025-09-20 19:06:07",
          "excerpt": "",
          "capture": "一、创建MDK工程\n- 参考:01-开发工具/01-keil/LV002-工程创建.md\n其中MDK版本和芯片支持包的版本如下:\n- 参考:01-开发工具/02-STM32Cube/LV002-STM32CubeMX工程创建.md\nSTM32CubeMX的版本如下:\n&lt;img src=\"./LV030-STM32程序下载/img/image-20250920223052679.png\" alt=\"image-20250920223052679\" style=\"zoom:50%;\" /\n 二、生成hex文件\n首先当然是生成成果物文件啦,我们使用MDK编写完程序后,要生成一个可以下载到开发板"
        },
        {
          "url": "/sdoc/dev-tool/keil/126b08e76d70287e70afead6.html",
          "relativePath": "/sdoc/01-开发工具/01-keil/LV040-在线调试.html",
          "frontmatter": {
            "title": "LV040-在线调试",
            "date": "2025-09-20 18:52:00",
            "icon": "famicons:logo-markdown",
            "permalink": "/sdoc/dev-tool/keil/126b08e76d70287e70afead6",
            "index": true,
            "tags": null,
            "categories": null,
            "copyright": false,
            "keywords": null,
            "cover": null,
            "comments": null,
            "mathjax": null,
            "top": null,
            "description": null,
            "tdoc": {
              "detailDate": {},
              "fulluuid": "e70afead6dd14692ad3b3749eb2cad4d",
              "useduuid": "e70afead6"
            }
          },
          "author": {
            "name": "苏木",
            "link": "https://github.com/docs-site"
          },
          "title": "LV040-在线调试",
          "date": "2025-09-20 18:52:00",
          "excerpt": "",
          "capture": "有了J-Link或者ST-Link,我们就可以在线调试代码,这里以我我使用的J-Link为例,简单介绍一下界面,后边的功能就自己摸索吧。\n 一、连接与配置\n最开始肯定是连接好J-Link、电脑和开发板啦,然后就是MDK工程的配置,这个可以看前边J-Link的使用。\n- 01-开发工具/10-下载与调试/LV002-JLink怎么使用.md\n- 01-开发工具/10-下载与调试/LV015-STLink怎么使用.md\n 二、开始在线调试\n 1. 启动\n我们可以点击工具栏的这个按钮进入调试,或者就是从菜单栏【Debug】&rarr;【Start/Stop Debug Session】启动:\n&lt"
        },
        {
          "url": "/sdoc/dev-tool/keil/126b08e6f2e40a653e71bc02.html",
          "relativePath": "/sdoc/01-开发工具/02-STM32Cube/LV015-LD链接脚本.html",
          "frontmatter": {
            "title": "LV040-LD链接脚本",
            "date": "2025-09-20 15:38:28",
            "icon": "famicons:logo-markdown",
            "permalink": "/sdoc/dev-tool/keil/126b08e6f2e40a653e71bc02",
            "index": true,
            "tags": null,
            "categories": null,
            "copyright": false,
            "keywords": null,
            "cover": null,
            "comments": null,
            "mathjax": null,
            "top": null,
            "description": null,
            "tdoc": {
              "detailDate": {},
              "fulluuid": "53e71bc02dd346aeac5749700b205317",
              "useduuid": "53e71bc02"
            }
          },
          "author": {
            "name": "苏木",
            "link": "https://github.com/docs-site"
          },
          "title": "LV040-LD链接脚本",
          "date": "2025-09-20 15:38:28",
          "excerpt": "<p>这篇笔记主要是STM32CubeMX软件生成的STM32F103ZETx_FLASH.ld链接文件的学习笔记。这篇笔记按照顺序从上到下分析STM32F103ZETx_FLASH.ld文件。关于GNU链接脚本的详细语法我们可以参考这里:<a href=\"https://sourceware.org/binutils/docs/\" target=\"_blank\" rel=\"noreferrer\">Documentation for binutils 2.40 (sourceware.org)</a>,这里好像还有在线的文档。**【注意】**生成Makefile文件的话,链接脚本是自动生成的,并且每一次重新生成的时候,<strong>链接脚本将会重新生成</strong>,也就是说,若是我们修改了链接脚本内容的话,只要我们通过STM32CubeMX更新工程,我们修改的部分都会被删除。</p>\n",
          "capture": "这篇笔记主要是STM32CubeMX软件生成的STM32F103ZETx_FLASH.ld链接文件的学习笔记。这篇笔记按照顺序从上到下分析STM32F103ZETx_FLASH.ld文件。关于GNU链接脚本的详细语法我们可以参考这里:Documentation for binutils 2.40 (sourceware.org),这里好像还有在线的文档。【注意】生成Makefile文件的话,链接脚本是自动生成的,并且每一次重新生成的时候,链接脚本将会重新生成,也就是说,若是我们修改了链接脚本内容的话,只要我们通过STM32CubeMX更新工程,我们修改的部分都会被删除。\n 一、参考资料\n关于链"
        },
        {
          "url": "/sdoc/dev-tool/stm32cube/126b08e6f0211b46eabe9106.html",
          "relativePath": "/sdoc/01-开发工具/02-STM32Cube/LV030-STM32CubeIDE.html",
          "frontmatter": {
            "title": "LV030-STM32CubeIDE",
            "date": "2025-09-20 15:31:21",
            "icon": "famicons:logo-markdown",
            "permalink": "/sdoc/dev-tool/stm32cube/126b08e6f0211b46eabe9106",
            "index": true,
            "tags": null,
            "categories": null,
            "copyright": false,
            "keywords": null,
            "cover": null,
            "comments": null,
            "mathjax": null,
            "top": null,
            "description": null,
            "tdoc": {
              "detailDate": {},
              "fulluuid": "6eabe9106e39465d81b7853e19f74deb",
              "useduuid": "6eabe9106"
            }
          },
          "author": {
            "name": "苏木",
            "link": "https://github.com/docs-site"
          },
          "title": "LV030-STM32CubeIDE",
          "date": "2025-09-20 15:31:21",
          "excerpt": "",
          "capture": "一、STM32CubeIDE简介\n偶然看到STM32CubeIDE这个么一个软件,它是ST官方推出的IDE,它已经集成了芯片选型,外设配置,代码生成,代码编译,程序烧录和程序调试等一系列功能,可以说STM32CubeMX是它的其中一个功能而已。这里对这个软件做一个简单的了解。\n 1. 简介\nSTM32CubeIDE是一种高级C/C++开发平台,具有STM32微控制器和微处理器的外设配置、代码生成、代码编译和调试功能。它基于Eclipse®/CDT™框架和用于开发的GCC工具链,以及用于调试的GDB。它支持集成数以百计的现有插件,正是这些插件使Eclipse® IDE的功能趋于完整。\nSTM32"
        },
        {
          "url": "/sdoc/dev-tool/stm32cube/126b08e6ef7626b7c442bfe2.html",
          "relativePath": "/sdoc/01-开发工具/02-STM32Cube/LV012-Makefile文件分析.html",
          "frontmatter": {
            "title": "LV012-Makefile文件分析",
            "date": "2025-09-20 15:29:50",
            "icon": "famicons:logo-markdown",
            "permalink": "/sdoc/dev-tool/stm32cube/126b08e6ef7626b7c442bfe2",
            "index": true,
            "tags": null,
            "categories": null,
            "copyright": false,
            "keywords": null,
            "cover": null,
            "comments": null,
            "mathjax": null,
            "top": null,
            "description": null,
            "tdoc": {
              "detailDate": {},
              "fulluuid": "7c442bfe2f7348608819bf852cebb54e",
              "useduuid": "7c442bfe2"
            }
          },
          "author": {
            "name": "苏木",
            "link": "https://github.com/docs-site"
          },
          "title": "LV012-Makefile文件分析",
          "date": "2025-09-20 15:29:50",
          "excerpt": "",
          "capture": "这篇笔记主要是STM32CubeMX软件生成的Makefile文件的学习笔记。这篇笔记按照顺序从上到下分析Makefile文件。\n 一、完整的Makefile文件\n```makefile\n File automatically-generated by tool: [projectgenerator] version: [3.19.2] date: [Thu Apr 27 16:55:10 CST 2023] \n ------------------------------------------------\n Generic Makefile (based on gcc)\n ChangeLo"
        },
        {
          "url": "/sdoc/dev-tool/stm32cube/126b08e6edcf211c7df7916d.html",
          "relativePath": "/sdoc/01-开发工具/02-STM32Cube/LV010-Makefile管理工程.html",
          "frontmatter": {
            "title": "LV010-Makefile管理工程",
            "date": "2025-09-20 15:25:27",
            "icon": "famicons:logo-markdown",
            "permalink": "/sdoc/dev-tool/stm32cube/126b08e6edcf211c7df7916d",
            "index": true,
            "tags": null,
            "categories": null,
            "copyright": false,
            "keywords": null,
            "cover": null,
            "comments": null,
            "mathjax": null,
            "top": null,
            "description": null,
            "tdoc": {
              "detailDate": {},
              "fulluuid": "c7df7916d51c40f295ec8bdf0e20a228",
              "useduuid": "c7df7916d"
            }
          },
          "author": {
            "name": "苏木",
            "link": "https://github.com/docs-site"
          },
          "title": "LV010-Makefile管理工程",
          "date": "2025-09-20 15:25:27",
          "excerpt": "",
          "capture": "一、STM32CubeMX生成工程\n 1. 生成Makefile\n前边我们已经熟悉了一下STM32CubeMX软件的使用方法,以及创建和导出MDK工程的过程,接下来我们创建一个含有Makefile文件的工程。\n- (1)【File】&rarr;【New Project】\n&lt;img src=\"./LV010-Makefile管理工程/img/image-20230419232250397.png\" alt=\"image-20230419232250397\"  /\n- (2)【选择芯片型号】&rarr;【Start Project】\n&lt;img src=\"./LV010-Makefile"
        },
        {
          "url": "/sdoc/dev-tool/keil/126b08e6d335070a7fd1934d.html",
          "relativePath": "/sdoc/01-开发工具/01-keil/LV025-SCT文件应用.html",
          "frontmatter": {
            "title": "LV025-SCT文件应用",
            "date": "2025-09-20 14:57:17",
            "icon": "famicons:logo-markdown",
            "permalink": "/sdoc/dev-tool/keil/126b08e6d335070a7fd1934d",
            "index": true,
            "tags": null,
            "categories": null,
            "copyright": false,
            "keywords": null,
            "cover": null,
            "comments": null,
            "mathjax": null,
            "top": null,
            "description": null,
            "tdoc": {
              "detailDate": {},
              "fulluuid": "a7fd1934dbcb4eef93f57d3dce4e0059",
              "useduuid": "a7fd1934d"
            }
          },
          "author": {
            "name": "苏木",
            "link": "https://github.com/docs-site"
          },
          "title": "LV025-SCT文件应用",
          "date": "2025-09-20 14:57:17",
          "excerpt": "",
          "capture": "这一篇笔记主要是通过SCT文件来实现变量的分配位置,这里需要后边FSMC驱动SRAM的知识。由于内存管理对应用程序非常重要,若修改 sct 文件,不使用默认配置,对工程影响非常大,容易导致出错,所以我们这里也是跟着教程做了两个实验,来学习 sct 文件的应用细节。\n\n 一、自定义SCT文件\n注意这里我们要根据上一节笔记,取消MDK使用默认的SCT文件。\n&lt;img src=\"./LV025-SCT文件应用/img/image-20230529215228408.png\" alt=\"image-20230529215228408\" style=\"zoom: 50%;\" /&gt;\n在 MDK"
        },
        {
          "url": "/sdoc/dev-tool/keil/126b08e6cfb5032dbc05b46a.html",
          "relativePath": "/sdoc/01-开发工具/01-keil/LV020-SCT分散加载文件.html",
          "frontmatter": {
            "title": "LV020-SCT分散加载文件",
            "date": "2025-09-20 14:48:21",
            "icon": "famicons:logo-markdown",
            "permalink": "/sdoc/dev-tool/keil/126b08e6cfb5032dbc05b46a",
            "index": true,
            "tags": null,
            "categories": null,
            "copyright": false,
            "keywords": null,
            "cover": null,
            "comments": null,
            "mathjax": null,
            "top": null,
            "description": null,
            "tdoc": {
              "detailDate": {},
              "fulluuid": "dbc05b46abca47d8a176762f5148dc50",
              "useduuid": "dbc05b46a"
            }
          },
          "author": {
            "name": "苏木",
            "link": "https://github.com/docs-site"
          },
          "title": "LV020-SCT分散加载文件",
          "date": "2025-09-20 14:48:21",
          "excerpt": "",
          "capture": "这里继续学习MDK的工程文件`*.sct`,使用的工程呢可以去这里下载:ebf_stm32f103_badao_std_code: 野火STM32F103 霸道开发板 标准库教程配套代码 (gitee.com)\n\n 一、sct分散加载文件简介\n当工程按默认配置构建时,MDK会根据我们选择的芯片型号,获知芯片的内部FLASH及内部SRAM存储器概况,生成一个以工程名命名的后缀为\\*.sct的分散加载文件(Linker Control File,scatter loading),链接器根据该文件的配置分配各个节区地址,生成分散加载代码,因此我们通过修改该文件可以定制具体节区的存储位置。例如,我们可"
        },
        {
          "url": "/sdoc/dev-tool/keil/126b08e6a9c4187125e57a5f.html",
          "relativePath": "/sdoc/01-开发工具/01-keil/LV010-程序与编译.html",
          "frontmatter": {
            "title": "LV010-程序与编译",
            "date": "2025-09-20 13:51:08",
            "icon": "famicons:logo-markdown",
            "permalink": "/sdoc/dev-tool/keil/126b08e6a9c4187125e57a5f",
            "index": true,
            "tags": null,
            "categories": null,
            "copyright": false,
            "keywords": null,
            "cover": null,
            "comments": null,
            "mathjax": null,
            "top": null,
            "description": null,
            "tdoc": {
              "detailDate": {},
              "fulluuid": "125e57a5ff854ebaa58b6fff51b99a11",
              "useduuid": "125e57a5f"
            }
          },
          "author": {
            "name": "苏木",
            "link": "https://github.com/docs-site"
          },
          "title": "LV010-程序与编译",
          "date": "2025-09-20 13:51:08",
          "excerpt": "",
          "capture": "一、编译过程\n 1. 编译过程简介\n我们简单了解下MDK的编译过程,它与其它编译器的工作过程是类似的:\n&lt;img src=\"./LV010-程序与编译/img/MDK002.jpg\" alt=\"MDK编译过程\" style=\"zoom: 67%;\" /\n(1) 编译,MDK软件使用的编译器是 armcc 和 armasm , 它们根据每个C/C++和汇编源文件编译成对应的以“ .o ”为后缀名的对象文件(Object Code,也称目标文件), 其内容主要是从源文件编译得到的机器码,包含了代码、数据以及调试使用的信息;\n(2) 链接, 链接器 armlink 把各个 .o 文件及库文件链"
        },
        {
          "url": "/sdoc/basic/overview/126b08e6a7051c291c1151a6.html",
          "relativePath": "/sdoc/10-基础篇/01-概述/LV022-CortexM0存储器映射.html",
          "frontmatter": {
            "title": "LV022-CortexM0存储器映射",
            "date": "2025-09-20 13:44:05",
            "icon": "famicons:logo-markdown",
            "permalink": "/sdoc/basic/overview/126b08e6a7051c291c1151a6",
            "index": true,
            "tags": null,
            "categories": null,
            "copyright": false,
            "keywords": null,
            "cover": null,
            "comments": null,
            "mathjax": null,
            "top": null,
            "description": null,
            "tdoc": {
              "detailDate": {},
              "fulluuid": "91c1151a6b3c4a07b26e0383912b8543",
              "useduuid": "91c1151a6"
            }
          },
          "author": {
            "name": "苏木",
            "link": "https://github.com/docs-site"
          },
          "title": "LV022-CortexM0存储器映射",
          "date": "2025-09-20 13:44:05",
          "excerpt": "",
          "capture": "一、存储器映射\n后面学习STM32的存储器映射的时候,有用到过M0架构的STM32F05x系列芯片,部分笔记记录在这里:\n&lt;img src=\"./LV022-CortexM0存储器映射/img/image-20230409205001077.png\" alt=\"image-20230409205001077\" style=\"zoom:33%;\" /\n被控单元的FLASH,RAM和AHB到APB的桥(即片上外设),这些功能部件共同排列在一个 4GB 的地址空间内。我们在编程的时候,可以通过他们的地址找到他们,然后来操作他们。存储器本身没有地址,给存储器分配地址的过程叫存储器映射。\n&lt;"
        },
        {
          "url": "/sdoc/basic/stm32basic/126b08e6a53918eab18839bd.html",
          "relativePath": "/sdoc/10-基础篇/10-STM32基础/LV050-STM32地址重映射.html",
          "frontmatter": {
            "title": "LV050-STM32地址重映射",
            "date": "2025-09-20 13:39:45",
            "icon": "famicons:logo-markdown",
            "permalink": "/sdoc/basic/stm32basic/126b08e6a53918eab18839bd",
            "index": true,
            "tags": null,
            "categories": null,
            "copyright": false,
            "keywords": null,
            "cover": null,
            "comments": null,
            "mathjax": null,
            "top": null,
            "description": null,
            "tdoc": {
              "detailDate": {},
              "fulluuid": "ab18839bd52b440b9ca51fa34ea3d714",
              "useduuid": "ab18839bd"
            }
          },
          "author": {
            "name": "苏木",
            "link": "https://github.com/docs-site"
          },
          "title": "LV050-STM32地址重映射",
          "date": "2025-09-20 13:39:45",
          "excerpt": "",
          "capture": "一、地址重映射\n这一部分还是以STM42F429为例。F429的中文手册可以看这里:RM0090_STM32F40xxx、STM32F41xxx、STM32F42xxx、STM32F43xx参考手册\n 1. 自举的概念\n自举(bootstrap)计算机设备使用硬件加载的程序,用于初始化足够的软件来查找并加载功能完整的操作系统。也用来描述加载自举程序的过程。什么是单片机的自举?单片机的自举就是单片机的启动。\n我们说,单片机程序基本都是从0地址出开始运行的,F429的0x00000000\\~0x001FFFFF地址映射了到什么存储器上,那么就从该存储器上读取指令,开始运行。\n至于说0x000000"
        },
        {
          "url": "/sdoc/basic/stm32basic/126b08e6840f3457e72c8780.html",
          "relativePath": "/sdoc/10-基础篇/10-STM32基础/LV045-STM32存储器系统.html",
          "frontmatter": {
            "title": "LV045-STM32存储器系统",
            "date": "2025-09-20 12:54:55",
            "icon": "famicons:logo-markdown",
            "permalink": "/sdoc/basic/stm32basic/126b08e6840f3457e72c8780",
            "index": true,
            "tags": null,
            "categories": null,
            "copyright": false,
            "keywords": null,
            "cover": null,
            "comments": null,
            "mathjax": null,
            "top": null,
            "description": null,
            "tdoc": {
              "detailDate": {},
              "fulluuid": "7e72c87803ee4322bcd1072590f70cb3",
              "useduuid": "7e72c8780"
            }
          },
          "author": {
            "name": "苏木",
            "link": "https://github.com/docs-site"
          },
          "title": "LV045-STM32存储器系统",
          "date": "2025-09-20 12:54:55",
          "excerpt": "",
          "capture": "一、基本概念\n 1. 寄存器\n 1.1 什么是寄存器?\n寄存器是计算机和微处理器内部的一种高速、小容量的存储单元,主要用于暂存指令、数据和地址。它是CPU或其他硬件组件直接操作的对象,访问速度远高于内存(RAM)。\n可以将其理解为 “工作台”:\n- CPU内核寄存器 是工程师(CPU)手边最顺手的工具,直接参与加工。\n- 外设寄存器 是工程师与外部机器(外设)进行控制和状态交互的控制面板。\n 1.2 寄存器分类\n寄存器根据其功能和位置,可以分为两个截然不同的层级。\n 1.2.1 CPU内核寄存器 (Core Registers)\n这类寄存器位于中央处理单元(CPU)内部,是CPU核心的一部分。"
        },
        {
          "url": "/sdoc/basic/stm32basic/126b08e6831f0a0031c3f015.html",
          "relativePath": "/sdoc/10-基础篇/10-STM32基础/LV040-STM32系统架构.html",
          "frontmatter": {
            "title": "LV040-STM32系统架构",
            "date": "2025-09-20 12:52:15",
            "icon": "famicons:logo-markdown",
            "permalink": "/sdoc/basic/stm32basic/126b08e6831f0a0031c3f015",
            "index": true,
            "tags": null,
            "categories": null,
            "copyright": false,
            "keywords": null,
            "cover": null,
            "comments": null,
            "mathjax": null,
            "top": null,
            "description": null,
            "tdoc": {
              "detailDate": {},
              "fulluuid": "031c3f0159bd41bfa7f2e89f6b50e340",
              "useduuid": "031c3f015"
            }
          },
          "author": {
            "name": "苏木",
            "link": "https://github.com/docs-site"
          },
          "title": "LV040-STM32系统架构",
          "date": "2025-09-20 12:52:15",
          "excerpt": "",
          "capture": "一、STM32简介\n 1. 回顾\n2007 年 6 月, ST 在北京发布了全球第一款基于 ARM Cortex M3 内核的 32 位通用微控制器芯片: STM32F103,以优异的性能,丰富的资源,超高的性价比,迅速占领市场,从此一鸣惊人,一发不可收拾,截止到 2020 年 6 月, STM32 累计出货量超过 45 亿颗。  \n后面学习的STM32就是用的下图中的STM32F103ZET6:\n&lt;img src=\"./LV040-STM32系统架构/img/image-20250920125818906.png\" alt=\"image-20250920125818906\" style"
        },
        {
          "url": "/sdoc/basic/stm32basic/126b08e608d01035e7260fce.html",
          "relativePath": "/sdoc/10-基础篇/10-STM32基础/LV021-认识HAL库.html",
          "frontmatter": {
            "title": "LV021-认识HAL库",
            "date": "2025-09-20 09:39:04",
            "icon": "famicons:logo-markdown",
            "permalink": "/sdoc/basic/stm32basic/126b08e608d01035e7260fce",
            "index": true,
            "tags": null,
            "categories": null,
            "copyright": false,
            "keywords": null,
            "cover": null,
            "comments": null,
            "mathjax": null,
            "top": null,
            "description": null,
            "tdoc": {
              "detailDate": {},
              "fulluuid": "5e7260fce3184ab293e2a218bc58687b",
              "useduuid": "5e7260fce"
            }
          },
          "author": {
            "name": "苏木",
            "link": "https://github.com/docs-site"
          },
          "title": "LV021-认识HAL库",
          "date": "2025-09-20 09:39:04",
          "excerpt": "<p>HAL,英文全称 Hardware Abstraction Layer,即硬件抽象层。 HAL 库是 ST 公司提供的外设驱动代码的驱动库,用户只需要调用库的 API 函数,便可间接配置寄存器。我们要写程序控制 STM32 芯片,其实最终就是控制它的寄存器,使之工作在我们需要的模式下, HAL 库将大部分寄存器的操作封装成了函数,我们只需要学习和掌握 HAL 库函数的结构和用法,就能方便地驱动 STM32 工作, 以节省开发时间。</p>\n<blockquote>\n<p>主要是ST官网主推的现在就是这个HAL库,而且STM32CubeMX软件生成工程也是用的这个,所以还是有必要学习一下。</p>\n</blockquote>\n",
          "capture": "HAL,英文全称 Hardware Abstraction Layer,即硬件抽象层。 HAL 库是 ST 公司提供的外设驱动代码的驱动库,用户只需要调用库的 API 函数,便可间接配置寄存器。我们要写程序控制 STM32 芯片,其实最终就是控制它的寄存器,使之工作在我们需要的模式下, HAL 库将大部分寄存器的操作封装成了函数,我们只需要学习和掌握 HAL 库函数的结构和用法,就能方便地驱动 STM32 工作, 以节省开发时间。  \n\n 一、HAL库驱动包\n 1. 下载STM32CubeF1固件\n直接来这里下载:STM32CubeF1 | Product - 意法半导体STMicroelec"
        },
        {
          "url": "/sdoc/basic/stm32basic/126b08e603011c2e21862cc6.html",
          "relativePath": "/sdoc/10-基础篇/10-STM32基础/LV020-STM32怎么开发.html",
          "frontmatter": {
            "title": "LV020-STM32怎么开发",
            "date": "2025-09-20 09:24:17",
            "icon": "famicons:logo-markdown",
            "permalink": "/sdoc/basic/stm32basic/126b08e603011c2e21862cc6",
            "index": true,
            "tags": null,
            "categories": null,
            "copyright": false,
            "keywords": null,
            "cover": null,
            "comments": null,
            "mathjax": null,
            "top": null,
            "description": null,
            "tdoc": {
              "detailDate": {},
              "fulluuid": "e21862cc6b54423c827258b8732bcdd8",
              "useduuid": "e21862cc6"
            }
          },
          "author": {
            "name": "苏木",
            "link": "https://github.com/docs-site"
          },
          "title": "LV020-STM32怎么开发",
          "date": "2025-09-20 09:24:17",
          "excerpt": "",
          "capture": "一、开发方式\n这篇笔记是已经对STM32有了一定的了解后才写的,其实STM32的开发大概有四种方式\n- (1)汇编,强的一批,我们可以直接使用内部寄存器和STM32的寄存器来使用汇编开发,难度可想而知。\n- (2)C语言+寄存器开发,这种相对容易,毕竟C语言我们都学过,无非是寄存器超级多。\n- (3)C语言+标准库,这个是我入门STM32的时候最先使用的库,一般都用这个。\n- (4)C语言+HAL库,HAL库配合STM32CubeMX软件使用,由于图形化的配置界面,这个HAL库据说是ST以后主推的库。\n 二、库开发与寄存器开发的关系  \n一般我们都是从学 51 单片机开发转而学习 STM32 "
        },
        {
          "url": "/sdoc/basic/stm32basic/126b08e600543a33cc0a657a.html",
          "relativePath": "/sdoc/10-基础篇/10-STM32基础/LV010-嵌入式C语言.html",
          "frontmatter": {
            "title": "LV010-嵌入式C语言",
            "date": "2025-09-20 09:17:32",
            "icon": "famicons:logo-markdown",
            "permalink": "/sdoc/basic/stm32basic/126b08e600543a33cc0a657a",
            "index": true,
            "tags": null,
            "categories": null,
            "copyright": false,
            "keywords": null,
            "cover": null,
            "comments": null,
            "mathjax": null,
            "top": null,
            "description": null,
            "tdoc": {
              "detailDate": {},
              "fulluuid": "3cc0a657a05d403785cc85fa30a99505",
              "useduuid": "3cc0a657a"
            }
          },
          "author": {
            "name": "苏木",
            "link": "https://github.com/docs-site"
          },
          "title": "LV010-嵌入式C语言",
          "date": "2025-09-20 09:17:32",
          "excerpt": "",
          "capture": "其实之前就学习过C预言了,语法什么的在嵌入式中都是一模一样的,就是有些数据类型还有相关操作可以再熟悉一下。\n 一、STM32支持的数据类型\n以STM32F103ZE这一款芯片为例,这是一块32bit的MCU,基本数据类型在此款芯片中的数据长度,以及在HAL库函数中的定义( stdint.h文件中的定义,采用C99标准)如下图:\n&lt;img src=\"./LV010-嵌入式C语言/img/image-20230418221356751.png\" alt=\"image-20230418221356751\" style=\"zoom: 80%;\" /\n 建议在开发过程中使用库定义的数据类型, 来定"
        },
        {
          "url": "/sdoc/basic/stm32basic/126b08e5feaa2043ad05a48e.html",
          "relativePath": "/sdoc/10-基础篇/10-STM32基础/LV001-STM32概述.html",
          "frontmatter": {
            "title": "LV001-STM32概述",
            "date": "2025-09-20 09:13:06",
            "icon": "famicons:logo-markdown",
            "permalink": "/sdoc/basic/stm32basic/126b08e5feaa2043ad05a48e",
            "index": true,
            "tags": null,
            "categories": null,
            "copyright": false,
            "keywords": null,
            "cover": null,
            "comments": null,
            "mathjax": null,
            "top": null,
            "description": null,
            "tdoc": {
              "detailDate": {},
              "fulluuid": "3ad05a48eac840679287e1b2301b039a",
              "useduuid": "3ad05a48e"
            }
          },
          "author": {
            "name": "苏木",
            "link": "https://github.com/docs-site"
          },
          "title": "LV001-STM32概述",
          "date": "2025-09-20 09:13:06",
          "excerpt": "",
          "capture": "一、STM32简介\n 1. STM32与ARM\n在2004年, ARM公司推出新一代Cortex内核后, ST公司抓住机遇,在很短的时间内就向市场推出了一系列的32位微控制器, 同时提供基于库的开发模式,加快用户研发周期。 STM32就是ST公司基于ARM Cortex-M系列内核设计的微控制器,专为高性能、低功耗、低成本场景设计。  \nSTM32如今产品系列非常丰富, 主要为ARM Cortex-M内核系列MCU,也开始涉及ARM Cortex-A内核\n系列MPU,如下图所示。 \n&lt;img src=\"./LV001-STM32概述/img/image-20230417223005421"
        },
        {
          "url": "/sdoc/basic/overview/126b08e5fb5429a0009ffc8b.html",
          "relativePath": "/sdoc/10-基础篇/01-概述/LV045-CortexM3的NVIC中断控制.html",
          "frontmatter": {
            "title": "LV040-CortexM3的NVIC中断控制",
            "date": "2025-09-20 09:04:52",
            "icon": "famicons:logo-markdown",
            "permalink": "/sdoc/basic/overview/126b08e5fb5429a0009ffc8b",
            "index": true,
            "tags": null,
            "categories": null,
            "copyright": false,
            "keywords": null,
            "cover": null,
            "comments": null,
            "mathjax": null,
            "top": null,
            "description": null,
            "tdoc": {
              "detailDate": {},
              "fulluuid": "0009ffc8b07a4e459a29f0ba0518592b",
              "useduuid": "0009ffc8b"
            }
          },
          "author": {
            "name": "苏木",
            "link": "https://github.com/docs-site"
          },
          "title": "LV040-CortexM3的NVIC中断控制",
          "date": "2025-09-20 09:04:52",
          "excerpt": "",
          "capture": "一、NVIC简介\nCortex-M3内核有一个专门管理中断的外设NVIC( Nested Vectored Interrupt Controller,嵌套向量中断控制器) , 通过优先级控制中断的嵌套和调度。NVIC是一个总的中断控制器, 无论是来在内核的异常还是外设的外部中断, 都由NVIC统一进行管理。 是 Cortex‐M3 不可分离的一部分, 它与 CM3 内核的逻辑紧密耦合, 有一部分甚至水乳交融在一起。 \nNVIC 与 CM3 内核同声相应,同气相求,相辅相成,里应外合,共同完成对中断的响应。 NVIC作为在内核里的外设,NVIC 的寄存器以存储器映射的方式来访问, 除了包含控制寄"
        },
        {
          "url": "/sdoc/basic/overview/126b08e5d7b911b28ed9ee4c.html",
          "relativePath": "/sdoc/10-基础篇/01-概述/LV040-CortexM3异常.html",
          "frontmatter": {
            "title": "LV040-CortexM3异常",
            "date": "2025-09-20 08:13:37",
            "icon": "famicons:logo-markdown",
            "permalink": "/sdoc/basic/overview/126b08e5d7b911b28ed9ee4c",
            "index": true,
            "tags": null,
            "categories": null,
            "copyright": false,
            "keywords": null,
            "cover": null,
            "comments": null,
            "mathjax": null,
            "top": null,
            "description": null,
            "tdoc": {
              "detailDate": {},
              "fulluuid": "28ed9ee4c4ee4374a05b403be9d08519",
              "useduuid": "28ed9ee4c"
            }
          },
          "author": {
            "name": "苏木",
            "link": "https://github.com/docs-site"
          },
          "title": "LV040-CortexM3异常",
          "date": "2025-09-20 08:13:37",
          "excerpt": "",
          "capture": "一、常见缩略语含义\n| 缩写 | 说明                               |\n| ---- | ---------------------------------- |\n| IRQ  | 中断请求(通常是指外部中断的请求) |\n| ISR  | 中断服务例程                       |\n| NMI  | 不可屏蔽中断                       |\n| NVIC | 嵌套向量中断控制器                 |\n| PSP  | 进程堆栈指针                       |\n 二、异常\n 1. 什么是异常?"
        },
        {
          "url": "/sdoc/basic/overview/126b08c73d361161792b640a.html",
          "relativePath": "/sdoc/10-基础篇/01-概述/LV035-CortexM3存储器系统.html",
          "frontmatter": {
            "title": "LV035-CortexM3存储器系统",
            "date": "2025-09-18 07:57:02",
            "icon": "famicons:logo-markdown",
            "permalink": "/sdoc/basic/overview/126b08c73d361161792b640a",
            "index": true,
            "tags": null,
            "categories": null,
            "copyright": false,
            "keywords": null,
            "cover": null,
            "comments": null,
            "mathjax": null,
            "top": null,
            "description": null,
            "tdoc": {
              "detailDate": {},
              "fulluuid": "1792b640ad2b40c1a34cc0ea4da24ed9",
              "useduuid": "1792b640a"
            }
          },
          "author": {
            "name": "苏木",
            "link": "https://github.com/docs-site"
          },
          "title": "LV035-CortexM3存储器系统",
          "date": "2025-09-18 07:57:02",
          "excerpt": "",
          "capture": "本篇笔记主要来自于《Cortex-M3 权威指南》的第五章存储器系统。其实有一部分概念在后边一篇笔记中才有所体现,比如什么是寄存器?。\n 一、存储器映射\nCM3 只有一个单一固定的存储器映射。这一点极大地方便了软件在各种 CM3 单片机间的移植。举个简单的例子,各款 CM3 单片机的 NVIC 和 MPU 都在相同的位置布设寄存器,使得它们变得通用。尽管如此, CM3 定出的条条框框是粗线条的,它依然允许芯片制造商灵活地分配存储器空间,以制造出各具特色的单片机产品。存储空间的一些位置用于调试组件等私有外设,这个地址段被称为“ 私有外设区”。私有外设区的组件包括:  \n(1)闪存地址重载及断点单"
        },
        {
          "url": "/sdoc/basic/overview/126b08c73a222946645cba90.html",
          "relativePath": "/sdoc/10-基础篇/01-概述/LV030-CortexM3简介.html",
          "frontmatter": {
            "title": "LV030-CortexM3简介",
            "date": "2025-09-18 07:49:14",
            "icon": "famicons:logo-markdown",
            "permalink": "/sdoc/basic/overview/126b08c73a222946645cba90",
            "index": true,
            "tags": null,
            "categories": null,
            "copyright": false,
            "keywords": null,
            "cover": null,
            "comments": null,
            "mathjax": null,
            "top": null,
            "description": null,
            "tdoc": {
              "detailDate": {},
              "fulluuid": "6645cba90f414432ac823c9d1938fc37",
              "useduuid": "6645cba90"
            }
          },
          "author": {
            "name": "苏木",
            "link": "https://github.com/docs-site"
          },
          "title": "LV030-CortexM3简介",
          "date": "2025-09-18 07:49:14",
          "excerpt": "",
          "capture": "一、概述\nARM(Advanced RISC Machine)是一个32位精简指令集(RISC)处理器架构,应用于许多嵌入式系统设计中。其中,自从ARMv7系列架构开始,ARM公司推出了Cortex系列,并根据不同的应用场景推出了Cortex-M,Cortex-A和Cortex-R三款不同方向的产品。\nARM代表了一种芯片标准,体现了芯片的架构设计,而具体涉及到存储器容量,片上外设,IO引脚数等实现,则是由不同的芯片厂商进行设计的。\n 二、内核与芯片\nARM公司提供内核(如Cortex M3,简称CM3,下同)授权,完整的MCU还需要很多其他组件。芯片公司(ST、 NXP、 TI、 GD、华大"
        },
        {
          "url": "/sdoc/basic/overview/126b08c738bc16b5b982661d.html",
          "relativePath": "/sdoc/10-基础篇/01-概述/LV020-CortexM0简介.html",
          "frontmatter": {
            "title": "LV020-CortexM0简介",
            "date": "2025-09-18 07:45:56",
            "icon": "famicons:logo-markdown",
            "permalink": "/sdoc/basic/overview/126b08c738bc16b5b982661d",
            "index": true,
            "tags": null,
            "categories": null,
            "copyright": false,
            "keywords": null,
            "cover": null,
            "comments": null,
            "mathjax": null,
            "top": null,
            "description": null,
            "tdoc": {
              "detailDate": {},
              "fulluuid": "5b982661dbf54e3db91954b53e220c58",
              "useduuid": "5b982661d"
            }
          },
          "author": {
            "name": "苏木",
            "link": "https://github.com/docs-site"
          },
          "title": "LV020-CortexM0简介",
          "date": "2025-09-18 07:45:56",
          "excerpt": "",
          "capture": "课程中使用的是STM32F0系列的芯片,用的是Cortex-M0的内核,所以这里的笔记是关于Cortex-M0的,对于我后来使用Cortex-M3内核大体上的的知识是基本通用的。\n 一、Cortex-M0处理器简介\n 1. Cortex-M 系列产品\nCortex-M 系列产品主要包括 Cortex-M0、Cortex-M1、Cortex-M3、Cortex-M4、Cortex-M7 等,其中 Cortex-M0 主打低功耗和混合信号的处理,M3 主要用来替代 ARM7,重点侧重能耗与性能的平衡,而 M7 则重点放在高性能控制运算领域。\n&lt;img src=\"./LV020-CortexM"
        },
        {
          "url": "/sdoc/basic/overview/126b08ba13b3329986816cf4.html",
          "relativePath": "/sdoc/10-基础篇/01-概述/LV010-常见存储器.html",
          "frontmatter": {
            "title": "LV010-常见存储器",
            "date": "2025-09-17 21:31:07",
            "icon": "famicons:logo-markdown",
            "permalink": "/sdoc/basic/overview/126b08ba13b3329986816cf4",
            "index": true,
            "tags": null,
            "categories": null,
            "copyright": false,
            "keywords": null,
            "cover": null,
            "comments": null,
            "mathjax": null,
            "top": null,
            "description": null,
            "tdoc": {
              "detailDate": {},
              "fulluuid": "986816cf43ae496ea97f2ac2344cf4bc",
              "useduuid": "986816cf4"
            }
          },
          "author": {
            "name": "苏木",
            "link": "https://github.com/docs-site"
          },
          "title": "LV010-常见存储器",
          "date": "2025-09-17 21:31:07",
          "excerpt": "",
          "capture": "一、单片机中的FLASH和SRAM\n我们在进行STM32芯片选型的时候,会看到这样的参数,可以看STM32F103选型页面:\n&lt;img src=\"./LV010-常见存储器/img/image-20230504212342232.png\" alt=\"image-20230504212342232\" style=\"zoom:50%;\" /\n比如这里,我们使用的STM32F103ZE系列芯片,有512KB的Flash和64KB的SRAM,这是什么意思呢?\n在STM32中 SRAM 及 FLASH 是作为内存和程序存储空间的。我们平时使用电脑,会考虑内存大小,有4GB、8GB、16GB等,也会"
        },
        {
          "url": "/sdoc/basic/overview/126b08ba0eae364f31526d00.html",
          "relativePath": "/sdoc/10-基础篇/01-概述/LV001-ARM体系结构.html",
          "frontmatter": {
            "title": "LV001-ARM体系结构",
            "date": "2025-09-17 21:18:22",
            "icon": "famicons:logo-markdown",
            "permalink": "/sdoc/basic/overview/126b08ba0eae364f31526d00",
            "index": true,
            "tags": null,
            "categories": null,
            "copyright": false,
            "keywords": null,
            "cover": null,
            "comments": null,
            "mathjax": null,
            "top": null,
            "description": null,
            "tdoc": {
              "detailDate": {},
              "fulluuid": "f31526d004e841cf942bb1c43e30f261",
              "useduuid": "f31526d00"
            }
          },
          "author": {
            "name": "苏木",
            "link": "https://github.com/docs-site"
          },
          "title": "LV001-ARM体系结构",
          "date": "2025-09-17 21:18:22",
          "excerpt": "",
          "capture": "一、 ARM简介\n 1. 为什么要学习ARM?\n在我们的生活中,STM32的应用得很广泛,像下边这些产品,可能都会用到STM32:\n&lt;img src=\"./LV001-ARM体系结构/img/image-20230408170339636.png\" alt=\"image-20230408170339636\" style=\"zoom:33%;\" /\n而STM32是一个微处理器,也就是MCU,它的结构一般如下:\n&lt;img src=\"./LV001-ARM体系结构/img/image-20230408170245470.png\" alt=\"image-20230408170245470\""
        },
        {
          "url": "/sdoc/dev-tool/burn-and-debug/126b08b9cea618afd74b243b.html",
          "relativePath": "/sdoc/01-开发工具/10-下载与调试/LV030-串口下载.html",
          "frontmatter": {
            "title": "LV030-串口下载",
            "date": "2025-09-17 19:54:30",
            "icon": "famicons:logo-markdown",
            "permalink": "/sdoc/dev-tool/burn-and-debug/126b08b9cea618afd74b243b",
            "index": true,
            "tags": null,
            "categories": null,
            "copyright": false,
            "keywords": null,
            "cover": null,
            "comments": null,
            "mathjax": null,
            "top": null,
            "description": null,
            "tdoc": {
              "detailDate": {},
              "fulluuid": "fd74b243b22149fe9c55a56a7b50b6d5",
              "useduuid": "fd74b243b"
            }
          },
          "author": {
            "name": "苏木",
            "link": "https://github.com/docs-site"
          },
          "title": "LV030-串口下载",
          "date": "2025-09-17 19:54:30",
          "excerpt": "<p>单片机开可以用串口下载程序,这部分来了解一下。</p>\n",
          "capture": "单片机开可以用串口下载程序,这部分来了解一下。\n 一、CH340驱动\n 1. CH340简介\n一般来说我们通过电脑连接到开发板的串口是用的RS232:\n&lt;img src=\"./LV030-串口下载/img/image-20220918134419265.png\" alt=\"image-20220918134419265\" style=\"zoom: 50%;\" /\n而RS-232 电平需要 DB9 接口 (也就是常说的 COM口)。现在的电脑很多都没有 DB9 接口了,取而代之的是 USB 接口,所以就催生出了很多 USB 转串口 TTL 芯片,比如 CH340、PL2303 等。通过这些"
        },
        {
          "url": "/sdoc/dev-tool/burn-and-debug/126b08b9cb90276fafba387f.html",
          "relativePath": "/sdoc/01-开发工具/10-下载与调试/LV020-ST-LINK-Utility简介.html",
          "frontmatter": {
            "title": "LV020-ST-LINK-Utility简介",
            "date": "2025-09-17 19:46:40",
            "icon": "famicons:logo-markdown",
            "permalink": "/sdoc/dev-tool/burn-and-debug/126b08b9cb90276fafba387f",
            "index": true,
            "tags": null,
            "categories": null,
            "copyright": false,
            "keywords": null,
            "cover": null,
            "comments": null,
            "mathjax": null,
            "top": null,
            "description": null,
            "tdoc": {
              "detailDate": {},
              "fulluuid": "fafba387f5f84aab849e4d8b464e22ad",
              "useduuid": "fafba387f"
            }
          },
          "author": {
            "name": "苏木",
            "link": "https://github.com/docs-site"
          },
          "title": "LV020-ST-LINK-Utility简介",
          "date": "2025-09-17 19:46:40",
          "excerpt": "",
          "capture": "一、简介\n我们有源码的时候可以使用MDK编译,然后一键下载,那我们要是没有源码怎么办?用串口吗?当然可以,还有别的办法吗?有啊,下边我们就来了解一下吧。\nSTM32 ST-LINK Utility这个软件工具其实主要就是配套“ST-LINK”这个下载工具一起使用的上位机软件。因此使用STM32 ST-LINK Utility上位机软件需要有一个ST-LINK工具才行。它的功能和J-Link对应的工具类似,用于烧写代码。\nSTM32 ST-LINK Utility工具在产品开发过程中测试一些其他版本的代码,可以直接下载hex,而不用打开工程再编译去下载。 当开发完一个STM32产品,需要量产的时"
        },
        {
          "url": "/sdoc/dev-tool/burn-and-debug/126b08b9c98b11187c20e13a.html",
          "relativePath": "/sdoc/01-开发工具/10-下载与调试/LV015-STLink怎么使用.html",
          "frontmatter": {
            "title": "LV015-STLink怎么使用",
            "date": "2025-09-17 19:41:23",
            "icon": "famicons:logo-markdown",
            "permalink": "/sdoc/dev-tool/burn-and-debug/126b08b9c98b11187c20e13a",
            "index": true,
            "tags": null,
            "categories": null,
            "copyright": false,
            "keywords": null,
            "cover": null,
            "comments": null,
            "mathjax": null,
            "top": null,
            "description": null,
            "tdoc": {
              "detailDate": {},
              "fulluuid": "87c20e13a48a44dfb380f22a1b102e34",
              "useduuid": "87c20e13a"
            }
          },
          "author": {
            "name": "苏木",
            "link": "https://github.com/docs-site"
          },
          "title": "LV015-STLink怎么使用",
          "date": "2025-09-17 19:41:23",
          "excerpt": "",
          "capture": "我这有一款ST-Link,这个是10脚的,引脚图直接画在正面了,如下图所示,按照排线的孔插入对应底座就可以啦。\n&lt;img src=\"./LV015-STLink怎么使用/img/image-20230422161832141.png\" alt=\"image-20230422161832141\" style=\"zoom: 50%;\" /\n 一、驱动安装\n 1. 驱动下载\n我们到官网去下载一个:STSW-LINK009 - 为Windows 7、Windows 8、Windows 10签署的ST-LINK、ST-LINK/V2、ST-LINK/V2-1 USB驱动 - 意法半导体STMicr"
        },
        {
          "url": "/sdoc/dev-tool/burn-and-debug/126b08b7f6ce25a6c770f3b5.html",
          "relativePath": "/sdoc/01-开发工具/10-下载与调试/LV010-JFlash简介.html",
          "frontmatter": {
            "title": "LV010-JFlash简介",
            "date": "2025-09-17 07:46:38",
            "icon": "famicons:logo-markdown",
            "permalink": "/sdoc/dev-tool/burn-and-debug/126b08b7f6ce25a6c770f3b5",
            "index": true,
            "tags": null,
            "categories": null,
            "copyright": false,
            "keywords": null,
            "cover": null,
            "comments": null,
            "mathjax": null,
            "top": null,
            "description": null,
            "tdoc": {
              "detailDate": {},
              "fulluuid": "6c770f3b50d84d7fad7f77bc05f872fc",
              "useduuid": "6c770f3b5"
            }
          },
          "author": {
            "name": "苏木",
            "link": "https://github.com/docs-site"
          },
          "title": "LV010-JFlash简介",
          "date": "2025-09-17 07:46:38",
          "excerpt": "",
          "capture": "一、JFlash简介\n我们有源码的时候可以使用MDK编译,然后一键下载,那我们要是没有源码怎么办?用串口吗?当然可以,还有别的办法吗?有啊,下边我们就来了解一下吧。\nJ-Flash 是单独的Flash ISP烧写软件,是一种独立Flash编程软件了,可以把单独的bin文件或者hex文件烧写到单片机的flash里面去。它是在安装 J-Link 驱动时自带的一款Flash ISP软件,支持bin格式、hex格式、srec格式(Motorola的)。\n 二、安装jFlash\n这个软件一般是随着J-Link驱动安装一起自动安装的,所以在我们安装好J-Link驱动的时候,这个软件就已经被安装好了,没有必"
        },
        {
          "url": "/sdoc/dev-tool/burn-and-debug/126b08ab16fa3e011692369d.html",
          "relativePath": "/sdoc/01-开发工具/10-下载与调试/LV001-下载与调试概述.html",
          "frontmatter": {
            "title": "LV001-下载与调试概述",
            "date": "2025-09-16 23:09:06",
            "icon": "famicons:logo-markdown",
            "permalink": "/sdoc/dev-tool/burn-and-debug/126b08ab16fa3e011692369d",
            "index": true,
            "tags": null,
            "categories": null,
            "copyright": false,
            "keywords": null,
            "cover": null,
            "comments": null,
            "mathjax": null,
            "top": null,
            "description": null,
            "tdoc": {
              "detailDate": {},
              "fulluuid": "11692369dc744332bc6f2569dd8ec58a",
              "useduuid": "11692369d"
            }
          },
          "author": {
            "name": "苏木",
            "link": "https://github.com/docs-site"
          },
          "title": "LV001-下载与调试概述",
          "date": "2025-09-16 23:09:06",
          "excerpt": "",
          "capture": "一、概述\nSTM32 常见的下载方式有三种:  \n| 下载方式 | 使用接口                 | 下载条件                                             | 优缺点                                                       |\n| -------------------------------------------------------- | ------------------------ | --------------------------------------------"
        },
        {
          "url": "/sdoc/dev-tool/burn-and-debug/126b08ab15ee0921c4f7fd64.html",
          "relativePath": "/sdoc/01-开发工具/10-下载与调试/LV002-JLink怎么使用.html",
          "frontmatter": {
            "title": "LV002-JLink怎么使用",
            "date": "2025-09-16 23:06:38",
            "icon": "famicons:logo-markdown",
            "permalink": "/sdoc/dev-tool/burn-and-debug/126b08ab15ee0921c4f7fd64",
            "index": true,
            "tags": null,
            "categories": null,
            "copyright": false,
            "keywords": null,
            "cover": null,
            "comments": null,
            "mathjax": null,
            "top": null,
            "description": null,
            "tdoc": {
              "detailDate": {},
              "fulluuid": "1c4f7fd64909407cb589ad3348a0c376",
              "useduuid": "1c4f7fd64"
            }
          },
          "author": {
            "name": "苏木",
            "link": "https://github.com/docs-site"
          },
          "title": "LV002-JLink怎么使用",
          "date": "2025-09-16 23:06:38",
          "excerpt": "",
          "capture": "一、驱动安装\n 1. 在哪里下载?\n我们到官网去下载一个:SEGGER - The Embedded Experts - Downloads - J-Link / J-Trace,可以选一个版本使用,我这里选的V7.86h,后我们可得到一个JLink_Windows_V786h_x86_64.exe可执行文件。\n&lt;img src=\"./LV002-JLink怎么使用/img/image-20230424172108179.png\" alt=\"image-20230424172108179\" style=\"zoom: 67%;\" /\n 2. 安装驱动\n这个由于我之前安装过,这里就不记录未安"
        },
        {
          "url": "/sdoc/dev-tool/stm32cube/126b08aaf7c11b6e19f8d60a.html",
          "relativePath": "/sdoc/01-开发工具/02-STM32Cube/LV002-STM32CubeMX工程创建.html",
          "frontmatter": {
            "title": "LV002-STM32CubeMX工程创建",
            "date": "2025-09-16 22:29:13",
            "icon": "famicons:logo-markdown",
            "permalink": "/sdoc/dev-tool/stm32cube/126b08aaf7c11b6e19f8d60a",
            "index": true,
            "tags": null,
            "categories": null,
            "copyright": false,
            "keywords": null,
            "cover": null,
            "comments": null,
            "mathjax": null,
            "top": null,
            "description": null,
            "tdoc": {
              "detailDate": {},
              "fulluuid": "e19f8d60a0f64d51a22bc5a8a04bf26f",
              "useduuid": "e19f8d60a"
            }
          },
          "author": {
            "name": "苏木",
            "link": "https://github.com/docs-site"
          },
          "title": "LV002-STM32CubeMX工程创建",
          "date": "2025-09-16 22:29:13",
          "excerpt": "",
          "capture": "一、工程创建\n 1. 芯片型号选择\n这个创建工程就比较简单了:\n- 【File】&rarr;【New Project】\n&lt;img src=\"./LV002-STM32CubeMX工程创建/img/image-20230419232250397.png\" alt=\"image-20230419232250397\"  /\n- 【选择芯片型号】&rarr;【Start Project】\n&lt;img src=\"./LV002-STM32CubeMX工程创建/img/image-20230419232522160.png\" alt=\"image-20230419232522160\"  /&gt"
        },
        {
          "url": "/sdoc/dev-tool/keil/126b08aa5e32382c0ab32a01.html",
          "relativePath": "/sdoc/01-开发工具/01-keil/LV002-工程创建.html",
          "frontmatter": {
            "title": "LV002-工程创建",
            "date": "2025-09-16 18:36:02",
            "icon": "famicons:logo-markdown",
            "permalink": "/sdoc/dev-tool/keil/126b08aa5e32382c0ab32a01",
            "index": true,
            "tags": null,
            "categories": null,
            "copyright": false,
            "keywords": null,
            "cover": null,
            "comments": null,
            "mathjax": null,
            "top": null,
            "description": null,
            "tdoc": {
              "detailDate": {},
              "fulluuid": "c0ab32a01a744756b6c0c3e4231ed9aa",
              "useduuid": "c0ab32a01"
            }
          },
          "author": {
            "name": "苏木",
            "link": "https://github.com/docs-site"
          },
          "title": "LV002-工程创建",
          "date": "2025-09-16 18:36:02",
          "excerpt": "<p>接下来就是工程创建啦。</p>\n",
          "capture": "接下来就是工程创建啦。\n 一、库文件\n在STM32的开发中,ST(意法半导体)提供了多种软件库来帮助开发者简化开发流程,提高开发效率。其中,标准外设库(Standard Peripheral Library, SPL) 和 硬件抽象层库(Hardware Abstraction Layer Library, HAL) 是最为经典和常用的两种。\n 1. 标准外设库 (Standard Peripheral Library, SPL)\n标准库,也称为SPL,是ST早期为STM32F1, F2, F4, L1等系列提供的库函数。它是对STM32芯片底层寄存器操作的一种封装,提供了一组C语言API用于"
        },
        {
          "url": "/sdoc/dev-tool/stm32cube/126b08aa58bc0838d250f7bd.html",
          "relativePath": "/sdoc/01-开发工具/02-STM32Cube/LV001-STM32CubeMX简介.html",
          "frontmatter": {
            "title": "LV001-STM32CubeMX简介",
            "date": "2025-09-16 18:22:04",
            "icon": "famicons:logo-markdown",
            "permalink": "/sdoc/dev-tool/stm32cube/126b08aa58bc0838d250f7bd",
            "index": true,
            "tags": null,
            "categories": null,
            "copyright": false,
            "keywords": null,
            "cover": null,
            "comments": null,
            "mathjax": null,
            "top": null,
            "description": null,
            "tdoc": {
              "detailDate": {},
              "fulluuid": "8d250f7bdb9d4b4fb822b135635cdf20",
              "useduuid": "8d250f7bd"
            }
          },
          "author": {
            "name": "苏木",
            "link": "https://github.com/docs-site"
          },
          "title": "LV001-STM32CubeMX简介",
          "date": "2025-09-16 18:22:04",
          "excerpt": "",
          "capture": "一、STM32CubeMX\n 1. 简介\n&lt;img src=\"./LV001-STM32CubeMX简介/img/image-20230419230755825.png\" alt=\"image-20230419230755825\" style=\"zoom:50%;\" /\nSTM32CubeMX是ST公司出品的一款C代码生成器软件,它是一种图形工具,通过分步过程可以非常轻松地配置STM32微控制器和微处理器,以及为Arm® Cortex®-M内核或面向Arm® Cortex®-A内核的特定Linux®设备树生成相应的初始化C代码。具有以下功能:\n- 直观的STM32微控制器和微处理器选择\n"
        },
        {
          "url": "/sdoc/dev-tool/keil/126b08a8b79e2ecaa634dd81.html",
          "relativePath": "/sdoc/01-开发工具/01-keil/LV001-keil简介.html",
          "frontmatter": {
            "title": "LV001-keil简介",
            "date": "2025-09-16 07:54:22",
            "icon": "famicons:logo-markdown",
            "permalink": "/sdoc/dev-tool/keil/126b08a8b79e2ecaa634dd81",
            "index": true,
            "tags": null,
            "categories": null,
            "copyright": false,
            "keywords": null,
            "cover": null,
            "comments": null,
            "mathjax": null,
            "top": null,
            "description": null,
            "tdoc": {
              "detailDate": {},
              "fulluuid": "aa634dd813594b2686f1ae7b5b6911d4",
              "useduuid": "aa634dd81"
            }
          },
          "author": {
            "name": "苏木",
            "link": "https://github.com/docs-site"
          },
          "title": "LV001-keil简介",
          "date": "2025-09-16 07:54:22",
          "excerpt": "",
          "capture": "一、Keil简介\n 1. 简介\nMDK 源自德国的 KEIL 公司,是 RealView MDK 的简称。在全球 MDK 被超过 10 万的嵌入式开发工程师使用。是目前针对 ARM 处理器,尤其是 Cortex M 内核处理器的最佳开发工具。  \nKeil MDK面向各种STM32微控制器产品的全面软件开发解决方案,提供创建、编译和调试嵌入式应用程序时所需的一切资源。MDK包括真正的Arm编译器和易于使用的Keil uVision IDE/调试器,可与STM32CubeMX和软件包连接。MDK还提供各种专业的中间件组件。\nMDK5 向后兼容 MDK4 和 MDK3 等,以前的项目同样可以在 M"
        }
      ]
    },
    "groupPostsByYearMonth": {
      "2025 ": {
        "10": [
          {
            "url": "/sdoc/basic/stm32flash/126b0e4540061175c7584cc2.html",
            "relativePath": "/sdoc/10-基础篇/50-STM32内部FLASH/LV025-IAP编程实现.html",
            "frontmatter": {
              "title": "LV025-IAP编程实现",
              "date": "2025-10-10 22:00:38",
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/basic/stm32flash/126b0e4540061175c7584cc2",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "5c7584cc23ea451aaa122d51f3053c7c",
                "useduuid": "5c7584cc2"
              }
            },
            "author": {
              "name": "苏木",
              "link": "https://github.com/docs-site"
            },
            "title": "LV025-IAP编程实现",
            "date": "2025-10-10 22:00:38",
            "excerpt": "",
            "capture": "一、APP应用程序制作\nSTM32 的 APP 程序不仅可以放到 FLASH 里面运行,也可以放到 SRAM 里面运行,  我们使用的STM32F103ZET6有512KB的FLASH和64KB的SRAM,FLASH的地址为 0x0800 0000 \\~ 0x0807 FFFF,内部SRAM的地址为 0x2000 0000 \\~ 0x2000 FFFF。\n 1.APP起始地址设置\n 1.1 FLASH中运行\n- 【Options for Target】&rarr;【Target】\n&lt;img src=\"./LV025-IAP编程实现/img/image-20220925122206196."
          },
          {
            "url": "/sdoc/basic/stm32flash/126b0e26745a3124f27972bd.html",
            "relativePath": "/sdoc/10-基础篇/50-STM32内部FLASH/LV020-IAP编程简介.html",
            "frontmatter": {
              "title": "LV020-IAP编程简介",
              "date": "2025-10-08 20:18:18",
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/basic/stm32flash/126b0e26745a3124f27972bd",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "4f27972bd3fc4860b4605d3ba9d93bb7",
                "useduuid": "4f27972bd"
              }
            },
            "author": {
              "name": "苏木",
              "link": "https://github.com/docs-site"
            },
            "title": "LV020-IAP编程简介",
            "date": "2025-10-08 20:18:18",
            "excerpt": "",
            "capture": "一、STM32编程方式\n 1. 在线编程\n 1.1 基本概念\nICP,全称为In-Circuit Programming,即在线编程。是通过 JTAG或者SWD 协议或者系统加载程序(Bootloader)下载用户应用程序到微控制器中。这种方式就是我们平时用的下载程序方式,就是通过JTAG下载器将我们通过Keil生成的hex文件下载到STM32开发板中。\n注意:这里我也不知道教程为什么叫这个,前边学习启动方式的时候也有提到过,它其实也可以称为 In System Program,也就是ISP,主要依靠ST官方在芯片内固化的BootLoader来接收来自串口的程序。\n 1.2 下载流程\n从串口下"
          },
          {
            "url": "/sdoc/basic/stm32memory/126b0e24d5e326e3a7296e85.html",
            "relativePath": "/sdoc/10-基础篇/60-STM32的内存/LV010-内存管理.html",
            "frontmatter": {
              "title": "LV010-内存管理",
              "date": "2025-10-08 09:57:15",
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/basic/stm32memory/126b0e24d5e326e3a7296e85",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "3a7296e85ae54af393dd0790947698ce",
                "useduuid": "3a7296e85"
              }
            },
            "author": {
              "name": "苏木",
              "link": "https://github.com/docs-site"
            },
            "title": "LV010-内存管理",
            "date": "2025-10-08 09:57:15",
            "excerpt": "",
            "capture": "我们学习了使用 STM32F1 驱动外部 SRAM,以扩展 STM32F1 的内存,加上STM32F1 本身自带的 64K 字节内存,我们可供使用的内存还是比较多的。如果我们所用的内存都像上一节的 testsram 那样,定义一个数组来使用,显然不是一个好办法。后来在使用Flash做Bootloader实验的时候,就无法在原有工程中定义一个55KB的数组,然后 lcd做字模缩放的时候,数组也是预先定义好的,直接就16KB,再加上一些其他的,STM32内部Flash一共就64KB,直接被我占满,sct文件中定义了SRAM的长度,导致编译都无法通过,所以动态的去管理内存就很有必要了。\n &lt;f"
          }
        ],
        "09": [
          {
            "url": "/docs/126b096ee4d10f3bb564b607.html",
            "relativePath": "/sdoc/30-进阶篇/90-FreeRTOS/01-FreeRTOS简介/LV001-FreeRTOS简介.html",
            "frontmatter": {
              "title": "LV001-FreeRTOS简介",
              "date": "2025-09-29 06:31:21",
              "icon": "famicons:logo-markdown",
              "permalink": "/docs/126b096ee4d10f3bb564b607",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "bb564b607089439882d4247b57282de9",
                "useduuid": "bb564b607"
              }
            },
            "author": {
              "name": "苏木",
              "link": "https://github.com/docs-site"
            },
            "title": "LV001-FreeRTOS简介",
            "date": "2025-09-29 06:31:21",
            "excerpt": "",
            "capture": "一、RTOS简介\n一般嵌入式系统分为两种:前后台系统和实时系统。\n 1. 前后台系统\n早期嵌入式开发没有嵌入式操作系统的概念,直接操作裸机,在裸机上写程序,直接一个while大循环,在循环中实现功能。通常把程序分为两部分:前台系统 和 后台系统。\n简单的小系统通常是前后台系统,这样的程序包括一个死循环和若干个中断服务程序:应用程序是一个无限循环,循环中调用API函数完成所需的操作,这个大循环就叫做后台系统。中断服务程序用于处理系统的异步事件,也就是前台系统。前台是中断级,后台是任务级。\n 2. 实时系统?\n&gt; 参考:《嵌入式实时操作系统RT-Thread设计与实现》 提取码: rpxn "
          },
          {
            "url": "/sdoc/advanced-chapter/display/lcd/126b09525e7116330989fbcc.html",
            "relativePath": "/sdoc/30-进阶篇/04-显示屏/02-LCD/LV040-实现任意大小字模.html",
            "frontmatter": {
              "title": "LV040-实现任意大小字模",
              "date": "2025-09-27 19:37:13",
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/advanced-chapter/display/lcd/126b09525e7116330989fbcc",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "30989fbcc8354f6baad6455294de0120",
                "useduuid": "30989fbcc"
              }
            },
            "author": {
              "name": "苏木",
              "link": "https://github.com/docs-site"
            },
            "title": "LV040-实现任意大小字模",
            "date": "2025-09-27 19:37:13",
            "excerpt": "",
            "capture": "我们要是想显示不同大小的字符怎么办?重新生成不同大小的字模?这当然是可以的啦,但是吧,要是需要的大小有很多怎么办,比如说我们需要16x16的,32x32的,64x64的,......,这样的话,都生成数组,然后放在文件里嘛,中文也都做成字库嘛?这样其实是可以的,只要内存足够就行,但是这样其实是很浪费资源的,它们的字模都是一样的,但是仅仅就是大小不同,我们就不能用一张表,然后对字体进行缩放,得到其他大小的字模嘛?当然可以啦,下边就来学习一下这个字模缩放的流程啦。\n注意后边主要是以英文字模的缩放为例,来说明缩放的原理,我们使用的字模大小为宽16高16,对应到英文的话,就是宽8高16啦。\n 一、基本"
          },
          {
            "url": "/sdoc/advanced-chapter/display/lcd/126b0952576b3df0941e36ed.html",
            "relativePath": "/sdoc/30-进阶篇/04-显示屏/02-LCD/LV035-中英文的显示.html",
            "frontmatter": {
              "title": "LV035-中英文的显示",
              "date": "2025-09-27 19:19:15",
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/advanced-chapter/display/lcd/126b0952576b3df0941e36ed",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "0941e36ed35b4da7a71acace5c8d2e0d",
                "useduuid": "0941e36ed"
              }
            },
            "author": {
              "name": "苏木",
              "link": "https://github.com/docs-site"
            },
            "title": "LV035-中英文的显示",
            "date": "2025-09-27 19:19:15",
            "excerpt": "",
            "capture": "一、字模\n 1. 什么是字模?\n前边我们已经了解了字符的编码,有了编码,我们就能在计算机中处理、存储字符了,但是如果计算机处理完字符后直接以编码的形式输出,人类将难以识别。因此计算机与人交互时,一般会把字符转化成人类习惯的表现形式进行输出,如显示、打印的时候。\n但是如果仅有字符编码,计算机还不知道该如何表达该字符,因为字符实际上是一个个独特的图形,计算机必须把字符编码转化成对应的字符图形人类才能正常识别,因此我们要给计算机提供字符的图形数据,这些数据就是字模,多个字模数据组成的文件也被称为字库。计算机显示字符时,根据字符编码与字模数据的映射关系找到它相应的字模数据,液晶屏根据字模数据显示该字符"
          },
          {
            "url": "/sdoc/advanced-chapter/display/lcd/126b095255800a53f67e99cc.html",
            "relativePath": "/sdoc/30-进阶篇/04-显示屏/02-LCD/LV030-字符编码简介.html",
            "frontmatter": {
              "title": "LV030-字符编码基础",
              "date": "2025-09-27 19:14:24",
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/advanced-chapter/display/lcd/126b095255800a53f67e99cc",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "3f67e99cc1774328be76eff3ae429948",
                "useduuid": "3f67e99cc"
              }
            },
            "author": {
              "name": "苏木",
              "link": "https://github.com/docs-site"
            },
            "title": "LV030-字符编码基础",
            "date": "2025-09-27 19:14:24",
            "excerpt": "",
            "capture": "一、字符编码概述\n在计算机上,我们看到的字符“ A”可能长这样 :\n&lt;img src=\"./LV030-字符编码简介/img/image-20230525215626795.png\" alt=\"image-20230525215626795\" style=\"zoom:50%;\" /\n对于同一个 TXT 文件中的内容,我们在 Notepad++ 上选择不同字体时,字符显示的形状也可能不一样。  所以 TXT 文件中保存的是字符的核心:它的编码值。而 Notepad++ 上显示时,这些字符对应什么样的形状态,这是由字符文件决定的。\n编码值,字体是两个不一样的东西,比如 A 的编码值是 0x4"
          },
          {
            "url": "/sdoc/advanced-chapter/display/lcd/126b095253d9037570d31d42.html",
            "relativePath": "/sdoc/30-进阶篇/04-显示屏/02-LCD/LV025-LCD显示实例.html",
            "frontmatter": {
              "title": "LV025-LCD显示实例",
              "date": "2025-09-27 19:10:01",
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/advanced-chapter/display/lcd/126b095253d9037570d31d42",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "570d31d42d894e208a1fb9d5c484e257",
                "useduuid": "570d31d42"
              }
            },
            "author": {
              "name": "苏木",
              "link": "https://github.com/docs-site"
            },
            "title": "LV025-LCD显示实例",
            "date": "2025-09-27 19:10:01",
            "excerpt": "",
            "capture": "这一节的笔记主要是LCD显示相关,不关注触摸屏相关引脚。\n 一、硬件原理图\n 1. 正点原子2.8寸LCD模块\n&lt;img src=\"./LV025-LCD显示实例/img/image-20230520165852112.png\" alt=\"image-20230520165852112\" style=\"zoom:50%;\" /\n上图是正点原子的2.8寸LCD模块的原理图,说真的,没看懂,不明白为什么模块原理图上跳过了D8和D9两根线,并且标号对应的时候要D0对应DB1这样子。这个图给我看自闭了,反正是没看懂,而且教程也没见说为什么这样。索性不看了,目前就看几个关键的引脚,这几个关键的引脚"
          },
          {
            "url": "/sdoc/advanced-chapter/display/lcd/126b09523c371707f0bd772f.html",
            "relativePath": "/sdoc/30-进阶篇/04-显示屏/02-LCD/LV020-FSMC模拟8080时序.html",
            "frontmatter": {
              "title": "LV020-FSMC模拟8080时序",
              "date": "2025-09-27 18:49:51",
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/advanced-chapter/display/lcd/126b09523c371707f0bd772f",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "7f0bd772fcbd424ab2f5aaf94abf65ff",
                "useduuid": "7f0bd772f"
              }
            },
            "author": {
              "name": "苏木",
              "link": "https://github.com/docs-site"
            },
            "title": "LV020-FSMC模拟8080时序",
            "date": "2025-09-27 18:49:51",
            "excerpt": "",
            "capture": "一、FSMC简介\n\n 1. 简介\nILI9341的8080通讯接口时序可以由STM32使用普通I/O接口进行模拟,但这样效率太低,STM32提供了一种特别的控制方法——使用FSMC接口实现8080时序。\n&lt;img src=\"./LV020-FSMC模拟8080时序/img/image-20230519221727962.png\" alt=\"image-20230519221727962\" style=\"zoom:50%;\" /&gt;\n我们前边学习SRAM的时候了解到STM32的FSMC外设可以用于控制扩展的外部存储器,而MCU对液晶屏的操作实际上就是把显示数据写入到显存中,与控制存储器"
          },
          {
            "url": "/sdoc/advanced-chapter/display/lcd/126b095238ef12080fa9e2fc.html",
            "relativePath": "/sdoc/30-进阶篇/04-显示屏/02-LCD/LV016-IL9341简介.html",
            "frontmatter": {
              "title": "LV016-IL9341简介",
              "date": "2025-09-27 18:41:11",
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/advanced-chapter/display/lcd/126b095238ef12080fa9e2fc",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "80fa9e2fc1c846ac9bfafe695ffc6b7d",
                "useduuid": "80fa9e2fc"
              }
            },
            "author": {
              "name": "苏木",
              "link": "https://github.com/docs-site"
            },
            "title": "LV016-IL9341简介",
            "date": "2025-09-27 18:41:11",
            "excerpt": "",
            "capture": "一、简介\nILI9341是奕力科技股份有限公司 (ilitek.com)的一款小尺寸驱动IC,我在官网没看到芯片手册,但是有些查datasheet的地方是可以查到的,这里就不写链接了。我在本地保存了一份:01ILI9341_DS.pdf\n它是一个支持分辨率为240x320点阵的a-TFT LCD 的262144(26万色)色单片驱动器。这个单片驱动器包含了一个720通道的源极驱动器(source driver),一个320通道的栅极驱动器(gate driver),自带一个172800字节(320x240x18/8)的GRAM用于显示240x320分辨率的图片数据。ILI9341提供8位/9位"
          },
          {
            "url": "/sdoc/advanced-chapter/display/lcd/126b095237661ce983ad47b1.html",
            "relativePath": "/sdoc/30-进阶篇/04-显示屏/02-LCD/LV015-ATK-MD0280模块.html",
            "frontmatter": {
              "title": "LV015-ATK-MD0280模块",
              "date": "2025-09-27 18:37:18",
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/advanced-chapter/display/lcd/126b095237661ce983ad47b1",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "983ad47b1ccb49c59396418e90556b0c",
                "useduuid": "983ad47b1"
              }
            },
            "author": {
              "name": "苏木",
              "link": "https://github.com/docs-site"
            },
            "title": "LV015-ATK-MD0280模块",
            "date": "2025-09-27 18:37:18",
            "excerpt": "",
            "capture": "一、相关资料\n这一部分主要看一下我们有哪些资料可以看,注意这里的资料都是放在本地的笔记对应的文件夹中:\n- ATK-MD0280模块用户手册:正点原子ATK-MD0280模块用户手册.pdf\n- ATK-MD0280模块裸屏图:00ATK-MD0280裸屏尺寸图(钢化玻璃TP).pdf\n- ILI9341芯片手册:01ILI9341_DS.pdf\n- 触摸驱动芯片手册:04XPT2046.pdf\n 二、2.8寸LCD模块\n我使用的是正点原子的2.8寸LCD模块,后边也是以这个模块进行学习。\n 1. 屏幕简介\nATK-MD0280-V2.4(V2.4 是版本号,下面均以 ATK-MD0280 表"
          },
          {
            "url": "/sdoc/advanced-chapter/display/lcd/126b0951760b03320ea5c5be.html",
            "relativePath": "/sdoc/30-进阶篇/04-显示屏/02-LCD/LV010-液晶控制原理.html",
            "frontmatter": {
              "title": "LV010-液晶控制原理",
              "date": "2025-09-27 13:42:19",
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/advanced-chapter/display/lcd/126b0951760b03320ea5c5be",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "20ea5c5be93445288eac3b57c2e84f66",
                "useduuid": "20ea5c5be"
              }
            },
            "author": {
              "name": "苏木",
              "link": "https://github.com/docs-site"
            },
            "title": "LV010-液晶控制原理",
            "date": "2025-09-27 13:42:19",
            "excerpt": "",
            "capture": "一、显示屏的组成\n下图是两种适合于STM32芯片使用的显示屏,我们以它为例讲解控制液晶屏的基本原理。\n&lt;img src=\"./LV010-液晶控制原理/img/LCD007.jpeg\" alt=\"适合STM32控制的显示屏实物图\" style=\"zoom: 33%;\" /\n这个完整的显示屏由液晶显示面板、电容触摸面板以及PCB底板构成。图中的触摸面板带有触摸控制芯片,该芯片处理触摸信号并通过引出的信号线与外部器件通讯, 触摸面板中间是透明的,它贴在液晶面板上面,一起构成屏幕的主体,触摸面板与液晶面板引出的排线连接到PCB底板上,根据实际需要, PCB底板上可能会带有“液晶控制器芯片”,图"
          },
          {
            "url": "/sdoc/advanced-chapter/display/lcd/126b0951740b3b3a3f69973e.html",
            "relativePath": "/sdoc/30-进阶篇/04-显示屏/02-LCD/LV001-LCD简介.html",
            "frontmatter": {
              "title": "LV001-LCD简介",
              "date": "2025-09-27 13:37:07",
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/advanced-chapter/display/lcd/126b0951740b3b3a3f69973e",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "a3f69973ef4142428240aba5719aeeb0",
                "useduuid": "a3f69973e"
              }
            },
            "author": {
              "name": "苏木",
              "link": "https://github.com/docs-site"
            },
            "title": "LV001-LCD简介",
            "date": "2025-09-27 13:37:07",
            "excerpt": "",
            "capture": "一、显示屏基础\n显示器属于计算机的I/O设备,即输入输出设备。它是一种将特定电子信息输出到屏幕上再反射到人眼的显示工具。常见的有CRT显示器、液晶显示器、LED点阵显示器及OLED显示器。从第一个显示装置发明至今,已经快有百年历史。 在显示屏的发展中,依次出现了三大显示技术: CRT、LCD、 OLED,如图所示。  \n&lt;img src=\"./LV001-LCD简介/img/image-20230503183212724.png\" alt=\"image-20230503183212724\" style=\"zoom:50%;\" /\n 1. CRT显示屏\n1897年, 德国电气工程师、 发明"
          },
          {
            "url": "/sdoc/advanced-chapter/display/oled/126b09517279099247b327e5.html",
            "relativePath": "/sdoc/30-进阶篇/04-显示屏/01-OLED/LV010-8080时序驱动OLED.html",
            "frontmatter": {
              "title": "LV010-8080时序驱动OLED",
              "date": "2025-09-27 13:33:05",
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/advanced-chapter/display/oled/126b09517279099247b327e5",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "247b327e5f1747919749deb8038e066d",
                "useduuid": "247b327e5"
              }
            },
            "author": {
              "name": "苏木",
              "link": "https://github.com/docs-site"
            },
            "title": "LV010-8080时序驱动OLED",
            "date": "2025-09-27 13:33:05",
            "excerpt": "",
            "capture": "本节笔记放在这里,主要是为了学习8080时序,为后边FSMC产生8080时序做铺垫,这一部分的笔记是用GPIO模拟8080时序,这样对8080时序的认识会更深刻一些。由于我没有8080并口的OLED模块,所以还是以正点原子的OLED模块来进行时序的模拟。\n 一、硬件原理图\n&lt;img src=\"./LV010-8080时序驱动OLED/img/image-20230516234228390.png\" alt=\"image-20230516234228390\" style=\"zoom:50%;\" /\n(1)CS: OLED 片选信号,对应 PD6。\n(2)WR:向 OLED 写入数据,对应 "
          },
          {
            "url": "/sdoc/advanced-chapter/display/oled/126b09516d6c2a948085516b.html",
            "relativePath": "/sdoc/30-进阶篇/04-显示屏/01-OLED/LV001-OLED简介.html",
            "frontmatter": {
              "title": "LV001-OLED简介",
              "date": "2025-09-27 13:20:12",
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/advanced-chapter/display/oled/126b09516d6c2a948085516b",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "48085516b89044b2a637057cfaac3f5c",
                "useduuid": "48085516b"
              }
            },
            "author": {
              "name": "苏木",
              "link": "https://github.com/docs-site"
            },
            "title": "LV001-OLED简介",
            "date": "2025-09-27 13:20:12",
            "excerpt": "",
            "capture": "本节笔记放在这里,主要是为了学习8080时序,为后边FSMC产生8080时序做铺垫,这一部分的笔记是用GPIO模拟8080时序,这样对8080时序的认识会更深刻一些。这一节会涉及一些像素啊,显存啊什么的基本概念,笔记写在LCD屏幕学的相关笔记中了。平时我用的还是I2C或者SPI接口的OLED。\n 一、OLED简介\n 1. 简介\nOLED,即有机发光二极管(Organic Light-Emitting Diode),又称为有机电激光显示(Organic Electroluminesence Display, OELD)。OLED由于同时具备自发光,不需背光源、对比度高、厚度薄、视角广、反应速度快"
          },
          {
            "url": "/sdoc/advanced-chapter/ov7725/126b09516bd03c413cd356e8.html",
            "relativePath": "/sdoc/30-进阶篇/03-OV7725/LV020-OV7725简介.html",
            "frontmatter": {
              "title": "LV020-OV7725简介",
              "date": "2025-09-27 13:16:00",
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/advanced-chapter/ov7725/126b09516bd03c413cd356e8",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "13cd356e84f447f3b52ee1a287368dce",
                "useduuid": "13cd356e8"
              }
            },
            "author": {
              "name": "苏木",
              "link": "https://github.com/docs-site"
            },
            "title": "LV020-OV7725简介",
            "date": "2025-09-27 13:16:00",
            "excerpt": "",
            "capture": "一、OV7725简介\n 1. CCD  Sensor与CMOS Sensor\n目前市场上采用的图像传感器(Sensor)主要有CCD与CMOS这两种。CCD Sensor的技术比较成熟,一致性较好,色彩还原逼真,在尺寸方面也有一定的优势,但是其工艺复杂、成本高、功耗大,像素提高难度大,技术遇到瓶颈。而CMOS Sensor制造工艺简单,成本相对较低,功耗小,开发简便,在现阶段有较大的发展空间。相关参数的对比如表所示。\n&lt;img src=\"./LV020-OV7725简介/img/image-20240114142822888.png\" alt=\"image-202401141428228"
          },
          {
            "url": "/sdoc/advanced-chapter/ov7725/126b09516b6c2fed98855250.html",
            "relativePath": "/sdoc/30-进阶篇/03-OV7725/LV010-SCCB协议简介.html",
            "frontmatter": {
              "title": "LV010-SCCB协议简介",
              "date": "2025-09-27 13:15:00",
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/advanced-chapter/ov7725/126b09516b6c2fed98855250",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "d9885525026649bdb9a31be28b79a722",
                "useduuid": "d98855250"
              }
            },
            "author": {
              "name": "苏木",
              "link": "https://github.com/docs-site"
            },
            "title": "LV010-SCCB协议简介",
            "date": "2025-09-27 13:15:00",
            "excerpt": "",
            "capture": "一、SCCB是什么?\nSCCB(Serial Camera Control Bus,串行摄像头控制总线) 是 OmniVision 开发的一种总线协议, 且广泛被应用于 OV 系列图像传感器上。\nSCCB 协议与 IIC 协议十分相似, SCCB协议由两条信号线组成: SIO_C(类似 IIC 协议的 SCL) 和 SIO_D(类似 IIC 协议的 SDA)。与 IIC 协议一样, SCCB 协议也有起始信号和停止信号, 只不过与 IIC 协议不同的是, IIC协议在传输完 1 字节数据后,需要传输的接收方发送 1 比特的确认位,而 SCCB 协议一次性要传输 9 位数据, 前 8 位为读写的"
          },
          {
            "url": "/sdoc/advanced-chapter/ov7725/126b09516b08191a7bd0fd02.html",
            "relativePath": "/sdoc/30-进阶篇/03-OV7725/LV001-ATK-MC6625F模块简介.html",
            "frontmatter": {
              "title": "LV001-ATK-MC6625F模块简介",
              "date": "2025-09-27 13:14:00",
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/advanced-chapter/ov7725/126b09516b08191a7bd0fd02",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "a7bd0fd0290345cfae6ad4ff74f043f7",
                "useduuid": "a7bd0fd02"
              }
            },
            "author": {
              "name": "苏木",
              "link": "https://github.com/docs-site"
            },
            "title": "LV001-ATK-MC6625F模块简介",
            "date": "2025-09-27 13:14:00",
            "excerpt": "",
            "capture": "一、ATK-MC6625F模块简介\nATK-MC7725F 模块一款高性能 30W 高清摄像头模块。 该模块采用 OmniVision 公司的 OV7725 摄像头传感器作为核心, OV7725 是一颗 1/4 英寸 CMOS VGA( 640*480)的图像传感器。 同时 ATK-MC7725F 模块集成了有源晶振和 FIFO 芯片, 这使得可以采用大部分的 MCU 控制该模块和读取图像数据。  \nATK-MC6625F 模块具有如下特点:\n- 集成有源晶振,无需外部提供时钟\n- 集成 FIFO 芯片,方便外部 MCU 读取图像\n- 支持 VGA、 QVGA 和从 CIF 到 40*30 的"
          },
          {
            "url": "/sdoc/peripheral/usb/126b095168b91d9fad5c2a07.html",
            "relativePath": "/sdoc/20-基本外设篇/60-USB/LV010-USB读卡器实例.html",
            "frontmatter": {
              "title": "LV010-USB读卡器实例",
              "date": "2025-09-27 13:08:09",
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/peripheral/usb/126b095168b91d9fad5c2a07",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "fad5c2a07ce14efe93e887b24a93fb47",
                "useduuid": "fad5c2a07"
              }
            },
            "author": {
              "name": "苏木",
              "link": "https://github.com/docs-site"
            },
            "title": "LV010-USB读卡器实例",
            "date": "2025-09-27 13:08:09",
            "excerpt": "",
            "capture": "一、实验说明\n学习 USB 时我们说过 USB 有很多的设备类,这一节的 USB 读卡器实际上是一个大容量存储设备(MSC: Mass Storage Class),本实验实现过程我们需要对 MSC 类实例化,即定义这个类可以操作的功能,上层应用通过 USBD_RegisterClass 函数,将此对象注册到 usbd 内核,它主要在 usbd_msc.c 源文件中实现它的各个成员函数。\n本实验中, STM32 作为设备连接到主机,我们需要使能 USB 外设,以便主机识别到 USB设备进行扫描,同时我们需要在软件上设计好 USB 枚举所需要的一些设备描述符和注册信息,配置对应的端点以用于 US"
          },
          {
            "url": "/sdoc/peripheral/usb/126b095167b12a8376012928.html",
            "relativePath": "/sdoc/20-基本外设篇/60-USB/LV001-USB简介.html",
            "frontmatter": {
              "title": "LV001-USB简介",
              "date": "2025-09-27 13:05:45",
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/peripheral/usb/126b095167b12a8376012928",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "3760129282bc45c68e9217915df4f46b",
                "useduuid": 376012928
              }
            },
            "author": {
              "name": "苏木",
              "link": "https://github.com/docs-site"
            },
            "title": "LV001-USB简介",
            "date": "2025-09-27 13:05:45",
            "excerpt": "",
            "capture": "USB,即通用串行总线(Universal Serial Bus),包括 USB 协议和 USB 硬件两个方面,支持热插拔功能。现在日常生活的很多方面都离不开 USB 的应用,如充电和数据传输等场景。\nUSB 经过多次修改, 1996 年确定了初始规范版本 USB1.0,目前由非盈利组织 USBIF(Front Page | USB-IF)管理。 STM32 自带的 USB 符合USB2.0 规范,故 2.0 版本仍是学习的重点。  \n 一、USB简介\nUSB 本身的知识体系非常复杂,这里就简单介绍一下,想更系统地学习 USB 的知识可以参考《圈圈教你玩 USB》、塞普拉斯提供的《USB101"
          },
          {
            "url": "/sdoc/advanced-chapter/esp8266/126b095152fb04ead8380cb5.html",
            "relativePath": "/sdoc/30-进阶篇/02-ESP8266/LV020-ATK-MW8266模块使用实例.html",
            "frontmatter": {
              "title": "LV020-ATK-ESP8266使用实例",
              "date": "2025-09-27 12:52:43",
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/advanced-chapter/esp8266/126b095152fb04ead8380cb5",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "ad8380cb587c446592ab6fa1ae7318fd",
                "useduuid": "ad8380cb5"
              }
            },
            "author": {
              "name": "苏木",
              "link": "https://github.com/docs-site"
            },
            "title": "LV020-ATK-ESP8266使用实例",
            "date": "2025-09-27 12:52:43",
            "excerpt": "",
            "capture": "一、硬件连接\nATK-MW8266D 模块可直接与正点原子战舰 STM32F103 开发板板载的 ATK 模块接口( ATK MODULE)进行连接,具体的连接关系,如下表所示:  \n&lt;img src=\"./LV020-ATK-MW8266模块使用实例/img/image-20240113094305951.png\" alt=\"image-20240113094305951\" style=\"zoom:50%;\" /\n注意,若要使用正点原子战舰 STM32F103 开发板的 ATK MODULE 接口连接ATK-MW8266D 模块,需要用跳线帽将开发板板载的 P8 接线端子的 PB10("
          },
          {
            "url": "/sdoc/advanced-chapter/esp8266/126b0951520814de18399844.html",
            "relativePath": "/sdoc/30-进阶篇/02-ESP8266/LV015-ESP8266固件烧录.html",
            "frontmatter": {
              "title": "LV015-ESP8266固件烧录",
              "date": "2025-09-27 12:50:00",
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/advanced-chapter/esp8266/126b0951520814de18399844",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "e18399844bf344e3bb81cdc33db73395",
                "useduuid": "e18399844"
              }
            },
            "author": {
              "name": "苏木",
              "link": "https://github.com/docs-site"
            },
            "title": "LV015-ESP8266固件烧录",
            "date": "2025-09-27 12:50:00",
            "excerpt": "",
            "capture": "这里主要是学习esp8266_start_guide_1_.pdf (ai-thinker.com)这篇文档,这是安信可提供的一个ESSP8266的入门教程。这节用的图都是安信可官方的模块,我没有实际买,这里只是做个笔记学习用。\n 一、接线与模式\n 1. 典型接线图\n这里以ESP01为例:\n&lt;img src=\"./LV015-ESP8266固件烧录/img/image-20240112192441073.png\" alt=\"image-20240112192441073\" style=\"zoom:50%;\" /\n 2. 启动模式\n一般来讲是这样的:\n&lt;img src=\"./LV01"
          },
          {
            "url": "/sdoc/advanced-chapter/esp8266/126b095151472d621a6605a9.html",
            "relativePath": "/sdoc/30-进阶篇/02-ESP8266/LV010-AT指令.html",
            "frontmatter": {
              "title": "LV010-AT指令",
              "date": "2025-09-27 12:48:07",
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/advanced-chapter/esp8266/126b095151472d621a6605a9",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "21a6605a91b34e7b87e3081f66267021",
                "useduuid": "21a6605a9"
              }
            },
            "author": {
              "name": "苏木",
              "link": "https://github.com/docs-site"
            },
            "title": "LV010-AT指令",
            "date": "2025-09-27 12:48:07",
            "excerpt": "",
            "capture": "一、ESSP-AT是什么?\nESP-AT 是乐鑫开发的可直接用于量产的物联网应用固件,旨在降低客户开发成本,快速形成产品。通过 ESP-AT 指令,您可以快速加入无线网络、连接云平台、实现数据通信以及远程控制等功能,真正的通过无线通讯实现万物互联。\nESP-AT 是基于 ESP-IDF 或 ESP8266_RTOS_SDK 实现的软件工程。它使 ESP 模组作为从机,MCU 作为主机。MCU 发送 AT 命令给 ESP 模组,控制 ESP 模组执行不同的操作,并接收 ESP 模组返回的 AT 响应。ESP-AT 提供了大量功能不同的 AT 命令,如 Wi-Fi 命令、TCP/IP 命令、Blu"
          },
          {
            "url": "/sdoc/advanced-chapter/esp8266/126b0951502d346ca9aa7929.html",
            "relativePath": "/sdoc/30-进阶篇/02-ESP8266/LV001-ESP8266模块简介.html",
            "frontmatter": {
              "title": "LV001-ESP8266模块简介",
              "date": "2025-09-27 12:45:25",
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/advanced-chapter/esp8266/126b0951502d346ca9aa7929",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "ca9aa79298244701abe40ba6e8a3afb0",
                "useduuid": "ca9aa7929"
              }
            },
            "author": {
              "name": "苏木",
              "link": "https://github.com/docs-site"
            },
            "title": "LV001-ESP8266模块简介",
            "date": "2025-09-27 12:45:25",
            "excerpt": "",
            "capture": "这一节开始,我们来学习一下正点原子的ESP8266模块。\n 一、ESP8266?\n 1. ESP8266是什么?\nESP8266其实是由乐鑫公司推出的一款WIFI芯片,而国内的一些物联网公司基于乐鑫的ESP8266芯片开发出了许多WIFI模块,这些WIFI模块大多以ESP8266作为前缀命名,因此我们通常用ESP8266指ESP8266WIFI模块。\n&lt;img src=\"./LV001-ESP8266模块简介/img/image-20240108220855988.png\" alt=\"image-20240108220855988\" /\n平常使用较多的ESP8266WIFI模块是国内安信"
          },
          {
            "url": "/sdoc/basic/stm32pwr/126b095140443bc89b1ebe84.html",
            "relativePath": "/sdoc/10-基础篇/70-STM32电源管理/LV010-三种模式实现.html",
            "frontmatter": {
              "title": "LV010-三种模式实现",
              "date": "2025-09-27 12:04:52",
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/basic/stm32pwr/126b095140443bc89b1ebe84",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "89b1ebe841074780aa0a2abaac3caa24",
                "useduuid": "89b1ebe84"
              }
            },
            "author": {
              "name": "苏木",
              "link": "https://github.com/docs-site"
            },
            "title": "LV010-三种模式实现",
            "date": "2025-09-27 12:04:52",
            "excerpt": "",
            "capture": "一、通用配置\n 1. 硬件原理图\n硬件主要使用到了按键、 LED 以及使用串口输出调试信息。 \n&lt;img src=\"./LV010-三种模式实现/img/image-20230610191800976.png\" alt=\"image-20230610191800976\" style=\"zoom: 33%;\" /\n 2. STM32CubeMX配置\n 2.1 时钟树\n&lt;img src=\"./LV010-三种模式实现/img/image-20230610191131427.png\" alt=\"image-20230610191131427\" style=\"zoom: 25%;\" /&g"
          },
          {
            "url": "/sdoc/basic/stm32pwr/126b09513f17393c50358806.html",
            "relativePath": "/sdoc/10-基础篇/70-STM32电源管理/LV001-电源管理简介.html",
            "frontmatter": {
              "title": "LV001-电源管理简介",
              "date": "2025-09-27 12:01:51",
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/basic/stm32pwr/126b09513f17393c50358806",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "c503588060cf485a965221f48977e91d",
                "useduuid": "c50358806"
              }
            },
            "author": {
              "name": "苏木",
              "link": "https://github.com/docs-site"
            },
            "title": "LV001-电源管理简介",
            "date": "2025-09-27 12:01:51",
            "excerpt": "",
            "capture": "一、STM32电源管理\n 1. 电源管理简介\n电源对电子设备的重要性不言而喻,它是保证系统稳定运行的基础,而保证系统能稳定运行后,又有低功耗的要求。\n在很多应用场合中都对电子设备的功耗要求非常苛刻,如某些传感器信息采集设备,仅靠小型的电池提供电源,要求工作长达数年之久,且期间不需要任何维护;由于智慧穿戴设备的小型化要求,电池体积不能太大导致容量也比较小,所以也很有必要从控制功耗入手,提高设备的续行时间。\n因此, STM32 有专门的电源管理外设监控电源并管理设备的运行模式,确保系统正常运行,并尽量降低器件的功耗。  \n 2. 电源系统结构\n为了方便进行电源管理, STM32把它的外设、内核等模"
          },
          {
            "url": "/sdoc/peripheral/rtc/126b09511eac35920a3f191c.html",
            "relativePath": "/sdoc/20-基本外设篇/55-RTC时钟/LV001-RTC简介.html",
            "frontmatter": {
              "title": "LV001-RTC简介",
              "date": "2025-09-27 11:18:52",
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/peripheral/rtc/126b09511eac35920a3f191c",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "20a3f191c6054d8d9f5fd53ff7b809de",
                "useduuid": "20a3f191c"
              }
            },
            "author": {
              "name": "苏木",
              "link": "https://github.com/docs-site"
            },
            "title": "LV001-RTC简介",
            "date": "2025-09-27 11:18:52",
            "excerpt": "",
            "capture": "一、RTC简介\n实时时钟( Real Time Clock, RTC), 是一个可以不使用系统主电源供电的定时器。在系统主电源断开的情况下,依靠纽扣电池供电继续计时,可以维持几个月到几年的持续工作。在系统恢复主电源工作时, 为系统提供日历、时间信息。\n&lt;img src=\"./LV001-RTC简介/img/image-20230611142452003.png\" alt=\"image-20230611142452003\" style=\"zoom:50%;\" /\n比如台式电脑主机, 必须接电源才能工作, 此时可以正常显示当前日期、时间。电脑关机一段时间后,重新开机,系统没有联网,也能正确显"
          },
          {
            "url": "/sdoc/advanced-chapter/file-system/126b09511d060b54b7d725e9.html",
            "relativePath": "/sdoc/30-进阶篇/01-文件系统/LV025-FATFS中自定义的一些函数.html",
            "frontmatter": {
              "title": "LV025-FATFS中自定义的一些函数",
              "date": "2025-09-27 11:14:30",
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/advanced-chapter/file-system/126b09511d060b54b7d725e9",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "4b7d725e9ba54c78945189a9341e3b34",
                "useduuid": "4b7d725e9"
              }
            },
            "author": {
              "name": "苏木",
              "link": "https://github.com/docs-site"
            },
            "title": "LV025-FATFS中自定义的一些函数",
            "date": "2025-09-27 11:14:30",
            "excerpt": "",
            "capture": "最终的代码可以看这里:STM32F103-Prj: STM32学习使用(STM32CubeMX+Makefile+VScode+J-Flash) (gitee.com)\n 一、文件系统结构体定义\n为了方便管理文件系统,定义一个结构体:\n```c\ntypedef struct __ex_fatfs\n{\n    FATFS *fs[FF_VOLUMES]; // 逻辑磁盘工作区.\n    BYTE *work;  // 挂载的时候用\n    FIL *file;             // 文件1\n    FIL *ftemp;            // 文件2\n    UINT br;   "
          },
          {
            "url": "/sdoc/advanced-chapter/file-system/126b09511b702501a47f120c.html",
            "relativePath": "/sdoc/30-进阶篇/01-文件系统/LV020-基于SD卡移植FATFS.html",
            "frontmatter": {
              "title": "LV015-基于SD卡移植FATFS",
              "date": "2025-09-27 11:10:24",
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/advanced-chapter/file-system/126b09511b702501a47f120c",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "1a47f120cd8c41b6ab06d05da2ace352",
                "useduuid": "1a47f120c"
              }
            },
            "author": {
              "name": "苏木",
              "link": "https://github.com/docs-site"
            },
            "title": "LV015-基于SD卡移植FATFS",
            "date": "2025-09-27 11:10:24",
            "excerpt": "",
            "capture": "我们先来看一下以SD卡为存储介质的FatFs文件系统的移植。另外就是,我后来移植的过程中,发现我们在使用STM32CubeMX配置SDIO的时候不要开SDIO和DMA中断,不然SD卡读写是有问题的,但是吧,移植好文件系统后,不知道为什么,怎么都跑不起来,具体是哪的影响还不清楚,后边知道了再补充。\n 一、底层读写\n 1. 初始化\n首先我们需要初始化SD卡,这里还是使用STM32CubeMX来配置的SDIO,所以初始化就如下函数所示:\n```c\nvoid MX_SDIO_SD_Init(void);\n```\n【函数说明】这个函数是完成SDIO的初始化,也就完成了对SD卡的初始化。注意这里有两个坑,"
          },
          {
            "url": "/sdoc/advanced-chapter/file-system/126b0951078a03391bda267a.html",
            "relativePath": "/sdoc/30-进阶篇/01-文件系统/LV015-基于SPIFLASH移植FATFS.html",
            "frontmatter": {
              "title": "LV015-基于SPIFLASH移植FATFS",
              "date": "2025-09-27 10:59:30",
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/advanced-chapter/file-system/126b0951078a03391bda267a",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "91bda267a4934867a0b05673bbc3ef13",
                "useduuid": "91bda267a"
              }
            },
            "author": {
              "name": "苏木",
              "link": "https://github.com/docs-site"
            },
            "title": "LV015-基于SPIFLASH移植FATFS",
            "date": "2025-09-27 10:59:30",
            "excerpt": "",
            "capture": "我们先来看一下以SPI FLASH为存储介质的FatFs文件系统的移植。\n 一、底层读写\n 1. 初始化\n首先我们需要初始化SPI FLASH,在这里我使用的是W25Q128,由于我使用的是STM32CubeMX来配置的SPI,所以初始化就如下函数所示:\n```c\n/* SPI2 init function */\nvoid MX_SPI2_Init(void);\n```\n 2. 获取SPI FLASH器件ID\n这一步其实本不是必须,但是由于代码支持了其他型号的SPI FLASH,所以这一步也就成了必要的步骤,其实也有好处,那就是可以通过读取ID来判断我们的SPI FLASH是否已经初始化完成:"
          },
          {
            "url": "/sdoc/advanced-chapter/file-system/126b095105912fc87e8eb3f7.html",
            "relativePath": "/sdoc/30-进阶篇/01-文件系统/LV010-FATFS简介.html",
            "frontmatter": {
              "title": "LV010-FATFS简介",
              "date": "2025-09-27 10:54:25",
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/advanced-chapter/file-system/126b095105912fc87e8eb3f7",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "87e8eb3f76b14573a4c0856bf2257669",
                "useduuid": "87e8eb3f7"
              }
            },
            "author": {
              "name": "苏木",
              "link": "https://github.com/docs-site"
            },
            "title": "LV010-FATFS简介",
            "date": "2025-09-27 10:54:25",
            "excerpt": "",
            "capture": "二、 FatFs简介\n 1. FatFs是什么?\nFATFS 是一个完全免费开源的 FAT 文件系统模块,专门为小型的嵌入式系统而设计。它完全用标准 C 语言编写,所以具有良好的硬件平台独立性,可以移植到 8051、 PIC、 AVR、 SH、Z80、 H8、 ARM 等系列单片机上而只需做简单的修改。它支持 FATl2、 FATl6 和 FAT32,支持多个存储媒介;有独立的缓冲区,可以对多个文件进行读/写,并特别对 8 位单片机和 16 位单片机做了优化。\n 2. 它有什么特点\n(1)Windows 兼容的 FAT 文件系统(支持 FAT12/FAT16/FAT32)\n(2)与平台无关,移"
          },
          {
            "url": "/sdoc/advanced-chapter/file-system/126b0951040033e78ccbca10.html",
            "relativePath": "/sdoc/30-进阶篇/01-文件系统/LV001-文件系统简介.html",
            "frontmatter": {
              "title": "LV001-文件系统简介",
              "date": "2025-09-27 10:50:24",
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/advanced-chapter/file-system/126b0951040033e78ccbca10",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "78ccbca106d046ecaee2de5e4c1f5766",
                "useduuid": "78ccbca10"
              }
            },
            "author": {
              "name": "苏木",
              "link": "https://github.com/docs-site"
            },
            "title": "LV001-文件系统简介",
            "date": "2025-09-27 10:50:24",
            "excerpt": "",
            "capture": "一、直接存储的弊端?\n我们前边已经学习了SPI FLASH和SD卡的读写,我们可以使用SPI FLASH直接存储数据,当需要记录字符“STM32 SPI FLASH” 时。 可以把这些文字转化成ASCII码,存储在数组中,然后调用SPI_FLASH_BufferWrite函数,把数组内容写入到SPI Flash芯片的指定地址上,在需要的时候从该地址把数据读取出来,再对读出来的数据以ASCII码的格式进行解读。  \n&lt;img src=\"./LV001-文件系统简介/img/image-20230513212219299.png\" alt=\"image-20230513212219299\" "
          },
          {
            "url": "/sdoc/peripheral/sdio/126b095100d21af60c8ed17e.html",
            "relativePath": "/sdoc/20-基本外设篇/50-SDIO/LV025-读写SD卡实例.html",
            "frontmatter": {
              "title": "LV025-读写SD卡实例",
              "date": "2025-09-27 10:42:10",
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/peripheral/sdio/126b095100d21af60c8ed17e",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "60c8ed17e9a9490aaf1efe2014ac5b67",
                "useduuid": "60c8ed17e"
              }
            },
            "author": {
              "name": "苏木",
              "link": "https://github.com/docs-site"
            },
            "title": "LV025-读写SD卡实例",
            "date": "2025-09-27 10:42:10",
            "excerpt": "",
            "capture": "一、硬件原理图\n我使用的是正点原子战舰V3的开发板,硬件连接如下图:\n&lt;img src=\"./LV025-读写SD卡实例/img/image-20230512193905411.png\" alt=\"image-20230512193905411\" style=\"zoom:50%;\" /\n 二、STM32CubeMX配置\n像LED、按键和串口的配置这里就不再赘述,这里只写SDIO相关配置。注意,这一部分中的中断和DMA相关配置是作为笔记写在这里,后边的测试函数并没有使用DMA以及中断相关的内容,都是使用的查询方式,当使用查询方式,但是又开启了DMA以及相关中断的时候,数据读写可能会失败,这"
          },
          {
            "url": "/sdoc/peripheral/sdio/126b0951000d2a75b964fa55.html",
            "relativePath": "/sdoc/20-基本外设篇/50-SDIO/LV020-STM32的SDIO.html",
            "frontmatter": {
              "title": "LV020-STM32的SDIO",
              "date": "2025-09-27 10:40:13",
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/peripheral/sdio/126b0951000d2a75b964fa55",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "5b964fa55b1c49f2849632ac18e58758",
                "useduuid": "5b964fa55"
              }
            },
            "author": {
              "name": "苏木",
              "link": "https://github.com/docs-site"
            },
            "title": "LV020-STM32的SDIO",
            "date": "2025-09-27 10:40:13",
            "excerpt": "",
            "capture": "本篇文档再看SD卡规范的时候就以文档Physical Layer Simplified Specification v2.0为主啦,因为STM32最高只支持2.0协议的SD卡。\n 一、SDIO简介\n 1. 简介\nSDIO,全称: Secure Digital Input and Output ,即安全数字输入输出接口。它是在SD卡接口的基础上发展而来,它可以兼容之前的SD卡,并可以连接SDIO接口设备,比如:蓝牙、WIFI、照相机等。\nSDIO和SD卡规范间的一个重要区别是增加了低速标准。低速卡的目标应用是以最小的硬件开支支持低速I/ O能力。低速卡支持类似调制解调器、条码扫描仪和GPS接收器"
          },
          {
            "url": "/sdoc/peripheral/sdio/126b0950ff013d660d235356.html",
            "relativePath": "/sdoc/20-基本外设篇/50-SDIO/LV015-SD卡的操作.html",
            "frontmatter": {
              "title": "LV015-SD卡的操作",
              "date": "2025-09-27 10:37:45",
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/peripheral/sdio/126b0950ff013d660d235356",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "60d235356a8a41c6b5be0b1b1d22ed03",
                "useduuid": "60d235356"
              }
            },
            "author": {
              "name": "苏木",
              "link": "https://github.com/docs-site"
            },
            "title": "LV015-SD卡的操作",
            "date": "2025-09-27 10:37:45",
            "excerpt": "",
            "capture": "一、SD卡命令\nSD命令由主机发出,以广播命令和寻址命令为例,广播命令是针对与SD主机总线连接的所有从设备发送的,寻址命令是指定某个地址设备进行命令传输。这一章的内容我们可以参考文档 Physical Layer Simplified Specification v9.0 的 4.7 Commands  章节。 \n 1. 命令格式\nSD命令格式固定为48bit,都是通过CMD线连续传输的, 数据线不参与。  \n&lt;img src=\"./LV015-SD卡的操作/img/image-20230510194931239.png\" alt=\"image-20230510194931239\" st"
          },
          {
            "url": "/sdoc/peripheral/sdio/126b0950fe110bc81c4d2fd3.html",
            "relativePath": "/sdoc/20-基本外设篇/50-SDIO/LV001-SD卡简介.html",
            "frontmatter": {
              "title": "LV001-SD卡简介",
              "date": "2025-09-27 10:35:05",
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/peripheral/sdio/126b0950fe110bc81c4d2fd3",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "81c4d2fd3b3049a1a63dd12e12b5a3fa",
                "useduuid": "81c4d2fd3"
              }
            },
            "author": {
              "name": "苏木",
              "link": "https://github.com/docs-site"
            },
            "title": "LV001-SD卡简介",
            "date": "2025-09-27 10:35:05",
            "excerpt": "",
            "capture": "这篇笔记主要看的是文档 Physical Layer Simplified Specification v9.0 ,但其实应该看文档Physical Layer Simplified Specification v2.0可能会更好一些,虽然他们基本是一样的(因为后边好像说是STM32做多支持到2.0版本的SD卡)。\n 一、SD卡简介\n 1. 什么是SD卡?\n SD卡(Secure Digital Memory Card)即:安全数码卡,它是在MMC的基础上发展而来,是一种基于半导体快闪记忆器的新一代记忆设备,是SD协会开发的一种专有 的非易失性 存储卡格式,用于便携式设备。由于它体积小、数据传"
          },
          {
            "url": "/sdoc/peripheral/dma/126b0950fc960317c7b64826.html",
            "relativePath": "/sdoc/20-基本外设篇/40-DMA/LV010-DMA使用实例.html",
            "frontmatter": {
              "title": "LV010-DMA使用实例",
              "date": "2025-09-27 10:31:26",
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/peripheral/dma/126b0950fc960317c7b64826",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "7c7b6482620b4698a5eac4b6e449f631",
                "useduuid": "7c7b64826"
              }
            },
            "author": {
              "name": "苏木",
              "link": "https://github.com/docs-site"
            },
            "title": "LV010-DMA使用实例",
            "date": "2025-09-27 10:31:26",
            "excerpt": "",
            "capture": "这里的实例都是通过STM32CubeMX软件进行配置。\n 一、存储器到存储器\nFLASH to SRAM,把内部FLASH的数据传输到内部的SRAM。在这里相当于将FLASH当做外设,将SRAM作为存储器,将数据从外设传输到存储器  。一般步骤如下:\n(1)使能 DMA 时钟;\n(2)配置 DMA 数据参数;\n(3)使能 DMA,进行传输;\n(4)等待传输完成,并对源数据和目标地址数据进行比较。  \n 1. STM32CubeMX配置\n&lt;img src=\"./LV010-DMA使用实例/img/image-20230505195655829.png\" alt=\"image-2023050"
          },
          {
            "url": "/sdoc/peripheral/dma/126b0950fbc52669af52caac.html",
            "relativePath": "/sdoc/20-基本外设篇/40-DMA/LV001-DMA简介.html",
            "frontmatter": {
              "title": "LV001-DMA简介",
              "date": "2025-09-27 10:29:17",
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/peripheral/dma/126b0950fbc52669af52caac",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "9af52caac91c42b1b28d2e09c22f8d43",
                "useduuid": "9af52caac"
              }
            },
            "author": {
              "name": "苏木",
              "link": "https://github.com/docs-site"
            },
            "title": "LV001-DMA简介",
            "date": "2025-09-27 10:29:17",
            "excerpt": "",
            "capture": "一、DMA简介\n 1. 简介\nDMA,即 Direct Memory Access,直接存储器访问。是单片机的一个外设,它的主要功能是用来搬数据,但是不需要占用 CPU,即在传输数据的时候, CPU 可以干其他的事情,好像是多线程一样。数据传输支持从外设到存储器或者存储器到存储器,这里的存储器可以是 SRAM 或者是 FLASH。\n我们知道CPU根据代码内容执行指令,这些众多指令中,有的用于计算、有的用于控制程序、有的用于转移数据等。 其中转移数据的指令,尤其是转移大量数据,会占用大量CPU资源。  例如把外设A的数据,传给外设B,这种情况其实不需要CPU一直参与,只需在A、 B之间创建个通道"
          },
          {
            "url": "/sdoc/peripheral/spi/126b0950f849211ff053e7ff.html",
            "relativePath": "/sdoc/20-基本外设篇/35-SPI/LV015-SPI读写W25QXXX实例.html",
            "frontmatter": {
              "title": "LV015-SPI读写W25QXXX实例",
              "date": "2025-09-27 10:20:25",
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/peripheral/spi/126b0950f849211ff053e7ff",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "ff053e7ff3e247358beec3bab1ba61de",
                "useduuid": "ff053e7ff"
              }
            },
            "author": {
              "name": "苏木",
              "link": "https://github.com/docs-site"
            },
            "title": "LV015-SPI读写W25QXXX实例",
            "date": "2025-09-27 10:20:25",
            "excerpt": "",
            "capture": "一、一般步骤\n通过SPI读写外部FLASH的一般步骤如下:\n(1)初始化通讯使用的目标引脚及端口时钟;\n(2)使能 SPI 外设的时钟;\n(3)配置 SPI 外设的模式、地址、速率等参数并使能 SPI 外设;\n(4)编写基本 SPI 按字节收发的函数;\n(5)编写对 FLASH 擦除及读写操作的的函数;\n(6)编写测试程序,对读写数据进行校验。  \n 二、硬件原理图\n&lt;img src=\"./LV015-SPI读写W25QXXX实例/img/image-20230507205517724.png\" alt=\"image-20230507205517724\" style=\"zoom:50%;"
          },
          {
            "url": "/sdoc/peripheral/spi/126b0950f64a0b5a3fbcba93.html",
            "relativePath": "/sdoc/20-基本外设篇/35-SPI/LV010-W25QXXX简介.html",
            "frontmatter": {
              "title": "LV010-W25QXXX简介",
              "date": "2025-09-27 10:15:14",
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/peripheral/spi/126b0950f64a0b5a3fbcba93",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "a3fbcba93d1642329a28cddcb65ad8e8",
                "useduuid": "a3fbcba93"
              }
            },
            "author": {
              "name": "苏木",
              "link": "https://github.com/docs-site"
            },
            "title": "LV010-W25QXXX简介",
            "date": "2025-09-27 10:15:14",
            "excerpt": "",
            "capture": "一、简介\nEEPROM和Flash的本质上是一样的, 都用于保存数据,Flash包括MCU内部的Flash和外部扩展的Flash,我使用的开发板的W25Q128就是一个SPI接口的外部NOR Flash。从功能上, Flash通常存放运行代码,运行过程中不会修改,而EEPROM存放用户数据,可能会反复修改。 从结构上, Flash按扇区操作, EEPROM通常按字节操作。  \nW25Q128是华邦的一款SPI接口 NOR FLASH 芯片,我看我使用的开发板上使用的型号是W25Q128JV,我们可以在这里找到它的芯片手册:W25Q128JV-datasheet。\n我们看芯片手册的开头,有这么几"
          },
          {
            "url": "/sdoc/peripheral/spi/126b0950f4ae14889c830ae3.html",
            "relativePath": "/sdoc/20-基本外设篇/35-SPI/LV001-STM32的SPI.html",
            "frontmatter": {
              "title": "LV001-STM32的SPI",
              "date": "2025-09-27 10:11:02",
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/peripheral/spi/126b0950f4ae14889c830ae3",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "89c830ae3a594952be17b5abc6bbb737",
                "useduuid": "89c830ae3"
              }
            },
            "author": {
              "name": "苏木",
              "link": "https://github.com/docs-site"
            },
            "title": "LV001-STM32的SPI",
            "date": "2025-09-27 10:11:02",
            "excerpt": "",
            "capture": "一、SPI简介\n这一部分可以查看笔记《60-通信专题/30-SPI/LV001-SPI简介.md》。\n 二、STM32的SPI外设\n 1. 简介\nSTM32 的 SPI 外设可用作通讯的主机及从机,支持最高的 SCK 时钟频率为 fpclk/2 (STM32F103 型号的芯片默认 f:sub:pclk1 为 36MHz, fpclk2 为72MHz),完全支持 SPI 协议的 4 种模式,数据帧长度可设置为 8 位或 16 位,可设置数据 MSB 先行或 LSB 先行。它还支持双线全双工、双线单向以及单线模式。其中双线单向模式可以同时使用 MOSI 及 MISO 数据线向一个方向传输数据,可"
          },
          {
            "url": "/sdoc/communication/can/126b0950f34624bdf8f7407f.html",
            "relativePath": "/sdoc/60-通信专题/40-CAN/LV001-CAN通信简介.html",
            "frontmatter": {
              "title": "LV001-CAN通信简介",
              "date": "2025-09-27 10:07:42",
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/communication/can/126b0950f34624bdf8f7407f",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "df8f7407fc324becb0237697f4ea8f9c",
                "useduuid": "df8f7407f"
              }
            },
            "author": {
              "name": "苏木",
              "link": "https://github.com/docs-site"
            },
            "title": "LV001-CAN通信简介",
            "date": "2025-09-27 10:07:42",
            "excerpt": "",
            "capture": "一、CAN简介\n 1. CAN\n控制器局域网( Controller Area Network, CAN) ,是由德国BOSCH(博世)公司开发, 是目前国际上应用最为广泛的现场总线之一。 其特点是可拓展性好,可承受大量数据的高速通信, 高度稳定可靠,因此常应用于汽车电子领域、工业自动化、医疗设备等高要求环境。  \n它是 ISO 国际标准化的串行通信协议。在当前的汽车产业中,出于对安全性、舒适性、方便性、低公害、低成本的要求,各种各样的电子控制系统被开发了出来。由于这些系统之间通信所用的数据类型及对可靠性的要求不尽相同,由多条总线构成的情况很多,线束的数量也随之增加。为适应“减少线束的数量”、"
          },
          {
            "url": "/sdoc/communication/serial-port/126b0950f287303e7c68cbb5.html",
            "relativePath": "/sdoc/60-通信专题/10-串口/LV030-RS485简介.html",
            "frontmatter": {
              "title": "LV030-RS485简介",
              "date": "2025-09-27 10:05:51",
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/communication/serial-port/126b0950f287303e7c68cbb5",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "e7c68cbb501d41a4be750e720e3a5e0a",
                "useduuid": "e7c68cbb5"
              }
            },
            "author": {
              "name": "苏木",
              "link": "https://github.com/docs-site"
            },
            "title": "LV030-RS485简介",
            "date": "2025-09-27 10:05:51",
            "excerpt": "",
            "capture": "一、RS485简介\nRS485是美国电子工业协会( Electronic Industries Association, EIA)于1983年发布的串行通信接口标准,经通讯工业协会( TIA)修订后命名为TIA/EIA-485-A。  485(一般称作RS485/EIA-485)是隶属于OSI模型物理层的电气特性规定为2线,半双工,多点通信的标准。用缆线两端的电压差值来表示传递信号。RS485仅仅规定了接受端和发送端的电气特性。它没有规定或推荐任何数据协议。\nRS485比RS232晚出现20多年,很多RS232的缺点,在RS485上有了改进。RS232的电平从-15V至+15V, 较高的电平值"
          },
          {
            "url": "/sdoc/communication/serial-port/126b0950f26b1afbd6db3885.html",
            "relativePath": "/sdoc/60-通信专题/10-串口/LV020-RS232简介.html",
            "frontmatter": {
              "title": "LV020-RS232简介",
              "date": "2025-09-27 10:05:23",
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/communication/serial-port/126b0950f26b1afbd6db3885",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "bd6db38856214d8db0d0697d94245e7d",
                "useduuid": "bd6db3885"
              }
            },
            "author": {
              "name": "苏木",
              "link": "https://github.com/docs-site"
            },
            "title": "LV020-RS232简介",
            "date": "2025-09-27 10:05:23",
            "excerpt": "",
            "capture": "一、RS232简介\nRS232是美国电子工业协会( Electronic Industries Association, EIA) 于1962年发布的串行通信接口标准,其中RS为英文“ Recomend Standard”的缩写, 中文翻译为“ 推荐标准”, 232为标识号。该标准对串行通信的物理接口及逻辑电平都做了规定, 其输出的电平称为RS232电平。早期常见于个人计算机上,是计算机通讯接口之一。现如今在个人计算机上已比较少见, 但在一些工控设备依旧比较多。\n最简单的RS232通信由三条数据线组成,即TXD、 RXD和GND。 RS232采用负逻辑电平,即-15V ~ -3V代表逻辑“ 1"
          },
          {
            "url": "/sdoc/communication/spi/126b0950dceb1d850b1e36d8.html",
            "relativePath": "/sdoc/60-通信专题/30-SPI/LV001-SPI简介.html",
            "frontmatter": {
              "title": "LV001-SPI简介",
              "date": "2025-09-27 09:50:19",
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/communication/spi/126b0950dceb1d850b1e36d8",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "50b1e36d86eb4c0e85c11fe350fcd877",
                "useduuid": "50b1e36d8"
              }
            },
            "author": {
              "name": "苏木",
              "link": "https://github.com/docs-site"
            },
            "title": "LV001-SPI简介",
            "date": "2025-09-27 09:50:19",
            "excerpt": "",
            "capture": "一、 SPI协议简介\n 1. 什么是SPI?\nSPI 协议,Serial Peripheral Interface  ,即串行外围设备接口, 是由摩托罗拉公司提出的通讯协议( Motorola) 在1980前后提出的一种全双工同步串行通信接口,它用于MCU与各种外围设备以串行方式进行通信以交换信息,通信速度最高可达25MHz以上。SPI接口主要应用在EEPROM、 FLASH、实时时钟、网络控制器、 OLED显示驱动器、 AD转换器,数字信号处理器、数字信号解码器等与MCU间要求通讯速率较高的场合 。\nSPI,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管"
          },
          {
            "url": "/sdoc/basic/stm32memory/126b0941431c016e4bdd2a68.html",
            "relativePath": "/sdoc/10-基础篇/60-STM32的内存/LV001-STM32内存简介.html",
            "frontmatter": {
              "title": "LV001-STM32内存简介",
              "date": "2025-09-26 07:26:04",
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/basic/stm32memory/126b0941431c016e4bdd2a68",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "e4bdd2a68030419b91dea7af452724aa",
                "useduuid": "e4bdd2a68"
              }
            },
            "author": {
              "name": "苏木",
              "link": "https://github.com/docs-site"
            },
            "title": "LV001-STM32内存简介",
            "date": "2025-09-26 07:26:04",
            "excerpt": "",
            "capture": "其实断断续续的,STM32启动文件、启动方式、程序组成、map文件、sct文件、sram、内部flash都大概已经了解过了,这里进行总结,从stm32启动开始,到程序跑起来,这中间究竟是怎么个过程。\n\n 一、单片机的启动\n&lt;img src=\"./LV001-STM32内存简介/img/image-20251008084514529.png\" alt=\"image-20251008084514529\" style=\"zoom:50%;\" /&gt;\n关于存储器映像,可以看 10-基础篇/10-STM32基础/LV045-STM32存储器系统.md\n关于启动方式,我们可以看 10-基础篇/2"
          },
          {
            "url": "/sdoc/basic/stm32flash/126b0934555e1e98aa9081c5.html",
            "relativePath": "/sdoc/10-基础篇/50-STM32内部FLASH/LV010-FLASH操作流程.html",
            "frontmatter": {
              "title": "LV010-FLASH操作流程",
              "date": "2025-09-25 22:53:10",
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/basic/stm32flash/126b0934555e1e98aa9081c5",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "8aa9081c5bfb4658bc14302518ab96b3",
                "useduuid": "8aa9081c5"
              }
            },
            "author": {
              "name": "苏木",
              "link": "https://github.com/docs-site"
            },
            "title": "LV010-FLASH操作流程",
            "date": "2025-09-25 22:53:10",
            "excerpt": "",
            "capture": "我这里使用的是STM32CubeMX来配置生成工程,使用的就是HAL库,由于内部Flash不需要我们来做初始化,所以软件不用配置,我们直接调用相应的驱动函数即可。这些可以操作内部Flash的函数声明都存在于 以下几个文件中:\n```c\nstm32f1xx_hal_flash_ex.h\nstm32f1xx_hal_flash.h \nstm32f1xx_hal_flash_ex.c\nstm32f1xx_hal_flash.c \n```\n关于Flash的相关资料,ST官方有另外的文档,叫做STM32F10xxx闪存编程手册,英文版在这里:STM32F10xxx Flash memory microc"
          },
          {
            "url": "/sdoc/basic/stm32flash/126b09345207167f3ed95339.html",
            "relativePath": "/sdoc/10-基础篇/50-STM32内部FLASH/LV001-内部FLASH简介.html",
            "frontmatter": {
              "title": "LV001-内部FLASH简介",
              "date": "2025-09-25 22:44:55",
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/basic/stm32flash/126b09345207167f3ed95339",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "f3ed95339a054335bd7861fbbdfca984",
                "useduuid": "f3ed95339"
              }
            },
            "author": {
              "name": "苏木",
              "link": "https://github.com/docs-site"
            },
            "title": "LV001-内部FLASH简介",
            "date": "2025-09-25 22:44:55",
            "excerpt": "",
            "capture": "一、内部FLASH\n这里了解一下内部Flash的一些内容,并不涉及对内部Flash读写等相关操作。\n 1. FLASH\n 简介\nflash是存储芯片的一种,通过特定的程序可以修改里面的数据。FLASH在电子以及半导体领域内往往表示 Flash Memory 的意思,即平时所说的“闪存”,全名叫 Flash EEPROM Memory。它结合了ROM和RAM的长处,不仅具备电子可擦除可编程(EEPROM)的性能,还可以快速读取数据(NVRAM的优势),使数据不会因为断电而丢失。\n在STM32芯片内部有一个FLASH存储器,它主要用于存储代码,它是一种nor flash。我们在电脑上编写好应用程序"
          },
          {
            "url": "/sdoc/peripheral/i2c/126b09344f37186302faabd7.html",
            "relativePath": "/sdoc/20-基本外设篇/30-I2C/LV015-AT24C02使用实例.html",
            "frontmatter": {
              "title": "LV015-AT24C02使用实例",
              "date": "2025-09-25 22:37:35",
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/peripheral/i2c/126b09344f37186302faabd7",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "302faabd7f05494cbdcffb39c1c91164",
                "useduuid": "302faabd7"
              }
            },
            "author": {
              "name": "苏木",
              "link": "https://github.com/docs-site"
            },
            "title": "LV015-AT24C02使用实例",
            "date": "2025-09-25 22:37:35",
            "excerpt": "",
            "capture": "一、硬件原理图\n&lt;img src=\"./LV015-AT24C02使用实例/img/image-20230507133622454.png\" alt=\"image-20230507133622454\" style=\"zoom:50%;\" /\n可以看到这里的AT24C02接在了PB6和PB7,也就是I2C1上边。\n 二、物理I2C读写AT24C02\n一般步骤如下:\n(1)配置通讯使用的目标引脚为开漏模式;\n(2)使能 I2C 外设的时钟;\n(3)配置 I2C 外设的模式、地址、速率等参数并使能 I2C 外设;\n(4)编写基本 I2C 按字节收发的函数;  \n(5)编写读写 EEPROM 存"
          },
          {
            "url": "/sdoc/peripheral/i2c/126b09344d8f021f00cacd6c.html",
            "relativePath": "/sdoc/20-基本外设篇/30-I2C/LV010-AT24C02简介.html",
            "frontmatter": {
              "title": "LV010-AT24C02简介",
              "date": "2025-09-25 22:33:11",
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/peripheral/i2c/126b09344d8f021f00cacd6c",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "f00cacd6ccbd4a459325107dc47b447a",
                "useduuid": "f00cacd6c"
              }
            },
            "author": {
              "name": "苏木",
              "link": "https://github.com/docs-site"
            },
            "title": "LV010-AT24C02简介",
            "date": "2025-09-25 22:33:11",
            "excerpt": "",
            "capture": "一、EEPROM简介\nEEPROM (Electrically Erasable Programmable read only memory)是指带电可擦可编程只读存储器。是一种掉电后数据不丢失的存储芯片。 EEPROM 可以在电脑上或专用设备上擦除已有信息,重新编程。一般用在即插即用。\n我们这一节的笔记主要是关于AT24C02的使用,它是一个串行电可擦除和可编程只读存储器(EEPROM),总容量是256(2K/8)个字节,通过IIC通信。它是 Atmel 公司的一款芯片,我们我使用的战舰V3的开发板上时AT24C02BN,我们可以在这里找到它的数据手册:AT24C01A/02/04/08/1"
          },
          {
            "url": "/sdoc/peripheral/i2c/126b09344c01323883ac1ab4.html",
            "relativePath": "/sdoc/20-基本外设篇/30-I2C/LV001-STM32的I2C.html",
            "frontmatter": {
              "title": "LV001-STM32的I2C",
              "date": "2025-09-25 22:29:13",
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/peripheral/i2c/126b09344c01323883ac1ab4",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "883ac1ab454e45c8903061818823ca7f",
                "useduuid": "883ac1ab4"
              }
            },
            "author": {
              "name": "苏木",
              "link": "https://github.com/docs-site"
            },
            "title": "LV001-STM32的I2C",
            "date": "2025-09-25 22:29:13",
            "excerpt": "",
            "capture": "一、I2C简介\n这一部分可以查看笔记60-通信专题/01-I2C协议/LV001-I2C简介.md,这篇笔记主要是关于I2C的物理层协议,读写时序以及各个信号的说明包括对各信号的模拟。\n 二、STM32的物理I2C\n 1. 物理I2C框图\n这一部分我们可以查看STM32中文参考手册的24 I2C接口一节:\n&lt;img src=\"./LV001-STM32的I2C/img/image-20230507110330416.png\" alt=\"image-20230507110330416\" style=\"zoom:50%;\" /\n 2. ①通信引脚\n通信引脚在框图中有三根:\n(1)SDA——数"
          },
          {
            "url": "/sdoc/peripheral/fsmc/sram/126b0924b2d20263b97733d0.html",
            "relativePath": "/sdoc/20-基本外设篇/25-FSMC/05-外部SRAM/LV015-外部SRAM读写实例.html",
            "frontmatter": {
              "title": "LV015-外部SRAM读写实例",
              "date": "2025-09-24 20:06:58",
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/peripheral/fsmc/sram/126b0924b2d20263b97733d0",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "3b97733d0c5f43148008ceafa2203f32",
                "useduuid": "3b97733d0"
              }
            },
            "author": {
              "name": "苏木",
              "link": "https://github.com/docs-site"
            },
            "title": "LV015-外部SRAM读写实例",
            "date": "2025-09-24 20:06:58",
            "excerpt": "",
            "capture": "一、硬件原理图\n我使用的是正点原子战舰V3的板子,硬件连接如下图:\n&lt;img src=\"./LV015-外部SRAM读写实例/img/image-20230503175021794.png\" alt=\"image-20230503175021794\" style=\"zoom:50%;\" /\n 二、STM32CubeMX配置\n这里只关心FSMC的配置,其他的可以看前边的笔记。\n 1. FSMC配置\n 1.1 模式选择\n&lt;img src=\"./LV015-外部SRAM读写实例/img/image-20230515064458738.png\" alt=\"image-20230515064"
          },
          {
            "url": "/sdoc/peripheral/fsmc/fsmc-basic/126b0924b19533081adda526.html",
            "relativePath": "/sdoc/20-基本外设篇/25-FSMC/01-FSMC基础/LV010-相关HAL库函数.html",
            "frontmatter": {
              "title": "LV010-相关HAL库函数",
              "date": "2025-09-24 20:03:41",
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/peripheral/fsmc/fsmc-basic/126b0924b19533081adda526",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "81adda5266e04132bfcad67ecceec69d",
                "useduuid": "81adda526"
              }
            },
            "author": {
              "name": "苏木",
              "link": "https://github.com/docs-site"
            },
            "title": "LV010-相关HAL库函数",
            "date": "2025-09-24 20:03:41",
            "excerpt": "",
            "capture": "一、库中的寄存器\n在 MDK 的寄存器定义里面,并没有定义 FSMC_BCRx、 FSMC_BTRx、 FSMC_BWTRx 等这个单独的寄存器,而是将他们进行了一些组合。FSMC_BCRx 和 FSMC_BTRx,组合成 BTCR[8]寄存器组,他们的对应关系如下:  \n```c\nBTCR[0]---\nBTCR[2]---&gt;FSMC_BCR2, BTCR[3]---&gt;FSMC_BTR2\nBTCR[4]---&gt;FSMC_BCR3, BTCR[5]---&gt;FSMC_BTR3\nBTCR[6]---&gt;FSMC_BCR4, BTCR[7]---&gt;FSMC_BTR4\n"
          },
          {
            "url": "/sdoc/peripheral/fsmc/fsmc-basic/126b092499b000721416c9a0.html",
            "relativePath": "/sdoc/20-基本外设篇/25-FSMC/01-FSMC基础/LV005-存储器映射与控制器.html",
            "frontmatter": {
              "title": "LV005-存储器映射与控制器",
              "date": "2025-09-24 19:42:24",
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/peripheral/fsmc/fsmc-basic/126b092499b000721416c9a0",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "21416c9a03d8478188e3897a2c59aa5e",
                "useduuid": "21416c9a0"
              }
            },
            "author": {
              "name": "苏木",
              "link": "https://github.com/docs-site"
            },
            "title": "LV005-存储器映射与控制器",
            "date": "2025-09-24 19:42:24",
            "excerpt": "",
            "capture": "一、存储器映射?\n 1. 直接访问地址?\nFSMC连接好外部的存储器并初始化后,就可以直接通过访问地址来读写数据。FSMC访问存储器的方式与I2C EEPROM、SPI FLASH的不一样,后两种方式都需要控制I2C或SPI总线给存储器发送地址,然后获取数据;在程序里,这个地址和数据都需要分开使用不同的变量存储,并且访问时还需要使用代码控制发送读写命令。而使用FSMC外接存储器时,其存储单元是映射到STM32的内部寻址空间的;在程序里,定义一个指向这些地址的指针,然后就可以通过指针直接修改该存储单元的内容,FSMC外设会自动完成数据访问过程,读写命令之类的操作不需要程序控制。\n 2. FSMC"
          },
          {
            "url": "/sdoc/peripheral/fsmc/fsmc-basic/126b092492553b23e8704ba7.html",
            "relativePath": "/sdoc/20-基本外设篇/25-FSMC/01-FSMC基础/LV001-FSMC简介.html",
            "frontmatter": {
              "title": "LV001-FSMC简介",
              "date": "2025-09-24 19:23:41",
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/peripheral/fsmc/fsmc-basic/126b092492553b23e8704ba7",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "3e8704ba79214a3cbb9ab231d637b62e",
                "useduuid": "3e8704ba7"
              }
            },
            "author": {
              "name": "苏木",
              "link": "https://github.com/docs-site"
            },
            "title": "LV001-FSMC简介",
            "date": "2025-09-24 19:23:41",
            "excerpt": "",
            "capture": "这一部分我们可以参考 STM32中文参考手册的 19 灵活的静态存储器控制器(FSMC) 一节。\n 一、FSMC简介\n 1. 什么是FSMC\nFSMC,Flexible static memory controller,即灵活的静态存储控制器,能够与同步或异步存储器和 16 位 PC 存储器卡连接,STM32F1 的 FSMC 接口支持包括 SRAM、 NAND FLASH、 NOR FLASH 和 PSRAM 等存储器,但是不能驱动如SDRAM这种动态的存储器。  而在STM32F429系列的控制器中,它具有FMC外设,支持控制SDRAM存储器。\nSTM32F103ZET6的内部有64KB的"
          },
          {
            "url": "/sdoc/peripheral/fsmc/sram/126b09248e5b007fcadf7acc.html",
            "relativePath": "/sdoc/20-基本外设篇/25-FSMC/05-外部SRAM/LV001-概述.html",
            "frontmatter": {
              "title": "LV001-概述",
              "date": "2025-09-24 19:13:23",
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/peripheral/fsmc/sram/126b09248e5b007fcadf7acc",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "fcadf7accc90458fa4cab2cebf963be3",
                "useduuid": "fcadf7acc"
              }
            },
            "author": {
              "name": "苏木",
              "link": "https://github.com/docs-site"
            },
            "title": "LV001-概述",
            "date": "2025-09-24 19:13:23",
            "excerpt": "",
            "capture": "一、什么是SRAM\n这个参考:10-基础篇/01-概述/LV010-常见存储器.md\n 二、为什么要扩展SRAM?\nSTM32控制器芯片内部有一定大小的SRAM及FLASH作为内存和程序存储空间,程序下载的时候是存放在内部的FLASH中的,在程序运行过程中,会有一些变量或者其他的东西存放在SRAM中运行,这就跟我们PC电脑上的内存一样。当程序较大,内存和程序空间不足时,就需要在STM32芯片的外部扩展存储器了。STM32F103ZE系列芯片可以扩展外部SRAM用作内存。\n给STM32芯片扩展内存与给PC扩展内存的原理是一样的,只是PC上一般以内存条的形式扩展,而且内存条实质是由多个内存颗粒(即"
          },
          {
            "url": "/sdoc/peripheral/fsmc/sram/126b09248db61d861c837fd7.html",
            "relativePath": "/sdoc/20-基本外设篇/25-FSMC/05-外部SRAM/LV005-IS62WV51216简介.html",
            "frontmatter": {
              "title": "LV005-IS62WV51216简介",
              "date": "2025-09-24 19:11:58",
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/peripheral/fsmc/sram/126b09248db61d861c837fd7",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "61c837fd7bf24e47b455ebbf97c03db7",
                "useduuid": "61c837fd7"
              }
            },
            "author": {
              "name": "苏木",
              "link": "https://github.com/docs-site"
            },
            "title": "LV005-IS62WV51216简介",
            "date": "2025-09-24 19:11:58",
            "excerpt": "",
            "capture": "一、简介\n IS62WV51216是ISSI(Integrated Silicon Solution, Inc)公司生产的一颗16位宽512K(512\\*16,即1M字节)容量的CMOS静态内存(SRAM)芯片。开发板上使用的完整的型号是 IS62WV51216BLL,它有以下特点:\n(1)高速。具有45ns/55ns访问速度。\n(2)低功耗。操作时:36mW;待机时:12uW。\n(3)兼容TTL电平。\n(4)全静态操作。不需要刷新和时钟电路。 \n(5)三态输出。\n(6)字节控制功能。支持高/低字节控制。\n 二、引脚说明\n&lt;img src=\"./LV005-IS62WV51216简介/i"
          },
          {
            "url": "/sdoc/peripheral/fsmc/sram/126b09248ce51200a79d393f.html",
            "relativePath": "/sdoc/20-基本外设篇/25-FSMC/05-外部SRAM/LV002-XM8A51216简介.html",
            "frontmatter": {
              "title": "LV002-XM8A51216简介",
              "date": "2025-09-24 19:09:49",
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/peripheral/fsmc/sram/126b09248ce51200a79d393f",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "0a79d393fee944b89889bdacfda6ea95",
                "useduuid": "0a79d393f"
              }
            },
            "author": {
              "name": "苏木",
              "link": "https://github.com/docs-site"
            },
            "title": "LV002-XM8A51216简介",
            "date": "2025-09-24 19:09:49",
            "excerpt": "",
            "capture": "一、简介\nXM8A51216 是深圳星忆存储科技有限公司(星忆存储 )生产的一颗 16 位宽 512K(512*16,即 1M 字节)容量的 CMOS 静态内存芯片。我们可以在这里找到它的芯片手册:。该芯片具有如下几个特点 :\n(1)高速。 具有最高访问速度 10/12ns。\n(2)低功耗。\n(3)TTL 电平兼容。\n(4)全静态操作。不需要刷新和时钟电路。\n(5)三态输出。\n(6)字节控制功能。支持高/低字节控制。  \n 二、功能框图\n功能框图我们可以看 XM8A51216V33(8M).pdf (xingmem.com).pdf) 的 Logic Block Diagram:\n&lt;im"
          },
          {
            "url": "/sdoc/dev-tool/keil/126b0913865605b5493dc70e.html",
            "relativePath": "/sdoc/01-开发工具/01-keil/LV017-Listing目录文件.html",
            "frontmatter": {
              "title": "LV017-Listing目录文件",
              "date": "2025-09-23 07:51:58",
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/dev-tool/keil/126b0913865605b5493dc70e",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "5493dc70ee6849e0b32a91f39d8e2488",
                "useduuid": "5493dc70e"
              }
            },
            "author": {
              "name": "苏木",
              "link": "https://github.com/docs-site"
            },
            "title": "LV017-Listing目录文件",
            "date": "2025-09-23 07:51:58",
            "excerpt": "",
            "capture": "本篇笔记主要是参考的野火的文档。使用的工程呢可以去这里下载:ebf_stm32f103_badao_std_code: 野火STM32F103 霸道开发板 标准库教程配套代码 (gitee.com)\n\n在Listing目录下包含了.map及.lst文件,它们都是文本格式的,可使用Windows的记事本软件打开。其中lst文件仅包含了一些汇编符号的链接信息,这些文件中重点是map文件。\n 一、Listing目录位置选择\n这里存放的都是链接器链接过程中用到的或者生成的文件,我们也是可以自行配置目录位置的:\n&lt;img src=\"./LV017-Listing目录文件/img/image-202"
          },
          {
            "url": "/sdoc/dev-tool/keil/126b0913857d3670d6f0eef1.html",
            "relativePath": "/sdoc/01-开发工具/01-keil/LV015-MDK工程文件简介.html",
            "frontmatter": {
              "title": "LV015-MDK工程文件简介",
              "date": "2025-09-23 07:49:41",
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/dev-tool/keil/126b0913857d3670d6f0eef1",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "0d6f0eef153042fc862dc752cb0e3c2d",
                "useduuid": "0d6f0eef1"
              }
            },
            "author": {
              "name": "苏木",
              "link": "https://github.com/docs-site"
            },
            "title": "LV015-MDK工程文件简介",
            "date": "2025-09-23 07:49:41",
            "excerpt": "",
            "capture": "本篇笔记主要是参考的野火的文档。使用的工程呢可以去这里下载:ebf_stm32f103_badao_std_code: 野火STM32F103 霸道开发板 标准库教程配套代码 (gitee.com)\n\n 一、MDK工程文件类型\n 1. Project工程文件\n&lt;table&gt;\n    &lt;tbody&gt;\n        &lt;tr&gt;&lt;td align=\"left\"&gt;后缀&lt;/td&gt;&lt;td align=\"left\"&gt;说明&lt;/td&gt;&lt;/tr&gt;\n        &lt;tr&gt;&lt;td align=\"left"
          },
          {
            "url": "/sdoc/dev-tool/keil/126b091384f9220a0ff9cf1d.html",
            "relativePath": "/sdoc/01-开发工具/01-keil/LV016-Output目录文件.html",
            "frontmatter": {
              "title": "LV016-Output目录文件",
              "date": "2025-09-23 07:48:09",
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/dev-tool/keil/126b091384f9220a0ff9cf1d",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "a0ff9cf1dff34a1790997424e34bac30",
                "useduuid": "a0ff9cf1d"
              }
            },
            "author": {
              "name": "苏木",
              "link": "https://github.com/docs-site"
            },
            "title": "LV016-Output目录文件",
            "date": "2025-09-23 07:48:09",
            "excerpt": "",
            "capture": "本篇笔记主要是参考的野火的文档。使用的工程呢可以去这里下载:ebf_stm32f103_badao_std_code: 野火STM32F103 霸道开发板 标准库教程配套代码 (gitee.com)\n\n 一、Output目录位置选择\nOutput目录是存放输出文件以及一些中间文件的目录,这个目录是可以配置的:\n&lt;img src=\"./LV016-Output目录文件/img/image-20230529200416215-1758358981825-2.png\" alt=\"image-20230529200416215\" style=\"zoom: 67%;\" /&gt;\n点击 MDK 中"
          },
          {
            "url": "/sdoc/communication/serial-port/126b0904421d06db7b197798.html",
            "relativePath": "/sdoc/60-通信专题/10-串口/LV001-串口通信简介.html",
            "frontmatter": {
              "title": "LV001-串口通信简介",
              "date": "2025-09-22 07:46:53",
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/communication/serial-port/126b0904421d06db7b197798",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "b7b197798fd74f3fb97abd23e12eb7bc",
                "useduuid": "b7b197798"
              }
            },
            "author": {
              "name": "苏木",
              "link": "https://github.com/docs-site"
            },
            "title": "LV001-串口通信简介",
            "date": "2025-09-22 07:46:53",
            "excerpt": "",
            "capture": "一、串口通信简介\n 1. 串口简介\n串口通讯(Serial Communication)是一种设备间非常常用的串行通讯方式,因为它简单便捷,因此大部分电子设备都支持该通讯方式。串口全称叫做串行接口,通常也叫做 COM 接口,串行接口指的是数据一个一个的顺序传输,通信线路简单。使用两条线即可实现双向通信,一条用于发送,一条用于接收。串口通信距离远,但是速度相对会低,串口是一种很常用的工业接口。我们常用串行外设接口有UART和USART两种:\n- UART:UART 全称是 Universal Asynchronous Receiver/Trasmitter,也就是异步串行收发器。\n- USART"
          },
          {
            "url": "/sdoc/communication/i2c/126b09043fca31869028172d.html",
            "relativePath": "/sdoc/60-通信专题/01-I2C协议/LV020-AT24C02实例分析.html",
            "frontmatter": {
              "title": "LV020-AT24C02实例分析",
              "date": "2025-09-22 07:40:58",
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/communication/i2c/126b09043fca31869028172d",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "69028172daa144dcbab34851329c3348",
                "useduuid": "69028172d"
              }
            },
            "author": {
              "name": "苏木",
              "link": "https://github.com/docs-site"
            },
            "title": "LV020-AT24C02实例分析",
            "date": "2025-09-22 07:40:58",
            "excerpt": "",
            "capture": "AT24C02 是一个 256 (2K/8)个字节的 EEPROM ,它使用的接口就是 I2C ,在它的芯片手册中,给出了读写时序的时序图,我们就以此器件为例分析一下 I2C 的读写时序。\n 一、单字节写时序\n&lt;img src=\"./LV020-AT24C02实例分析/img/image-20220903160151362.png\" alt=\"image-20220903160151362\" style=\"zoom:50%;\" /\n(1)开始信号。\n(2)发送  I2C  设备地址,每个  I2C  器件都有一个设备地址,通过发送具体的设备地址来决定访问哪个  I2C  器件。这是一个 "
          },
          {
            "url": "/sdoc/communication/i2c/126b09043f2d250b963bfb0d.html",
            "relativePath": "/sdoc/60-通信专题/01-I2C协议/LV001-I2C简介.html",
            "frontmatter": {
              "title": "LV001-I2C简介",
              "date": "2025-09-22 07:39:01",
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/communication/i2c/126b09043f2d250b963bfb0d",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "b963bfb0deb74fcaa8f060b7b084d3d8",
                "useduuid": "b963bfb0d"
              }
            },
            "author": {
              "name": "苏木",
              "link": "https://github.com/docs-site"
            },
            "title": "LV001-I2C简介",
            "date": "2025-09-22 07:39:01",
            "excerpt": "",
            "capture": "一、I2C简介\n 1. I2C介绍\nI2C 就是 I2C ( Inter-Integrated Circuit )总线,是一种多主从架构串行通信总线。在1980年由 PHILIPS  (飞利浦)公司开发的两线式串行、同步、半双工、多主多从的通信总线,用于连接微控制器及其外围设备。它可以让主板、嵌入式系统或手机连接低速周边设备, 如今在嵌入式领域是非常常见。\n它是由数据线  SDA  和时钟  SCL  构成的串行总线,可发送和接收数据。在  CPU  与被控  IC  之间、  IC  与  IC  之间进行双向传送数据, 标准 I2C 总线传输速率可到 100kbps ,高速  I2C  总"
          },
          {
            "url": "/sdoc/communication/126b09043e1c12685fda3fb8.html",
            "relativePath": "/sdoc/60-通信专题/LV001-通信概述.html",
            "frontmatter": {
              "title": "LV001-通信概述",
              "date": "2025-09-22 07:36:28",
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/communication/126b09043e1c12685fda3fb8",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "85fda3fb8df54e90807dd03d5831b5bf",
                "useduuid": "85fda3fb8"
              }
            },
            "author": {
              "name": "苏木",
              "link": "https://github.com/docs-site"
            },
            "title": "LV001-通信概述",
            "date": "2025-09-22 07:36:28",
            "excerpt": "",
            "capture": "一、通信的两种方式\n处理器与外部设备通信,按数据传送的方式,通讯可分为串行通讯与并行通讯,但是一般我们看到的大多数都是串行通信。\n 1.串行通信\n串行通讯是指设备之间通过少量数据信号线(一般是 8 根以下), 地线以及控制信号线,按数据位形式一位一位地传输数据的通讯方式。\n- 传输原理:数据按位顺序传输\n- 优点:占用处理器引脚资源少\n- 缺点:传输速度相对较慢\n&lt;img src=\"./LV001-通信概述/img/image-20220918111415861.png\" alt=\"image-20220918111415861\" style=\"zoom:33%;\" /\n 2.并行通信\n"
          },
          {
            "url": "/sdoc/peripheral/watchdog/126b09043c29000296442c6e.html",
            "relativePath": "/sdoc/20-基本外设篇/20-看门狗/LV010-看门狗使用实例.html",
            "frontmatter": {
              "title": "LV010-看门狗使用实例",
              "date": "2025-09-22 07:31:29",
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/peripheral/watchdog/126b09043c29000296442c6e",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "296442c6e9ba4600b39cd12075ea87af",
                "useduuid": "296442c6e"
              }
            },
            "author": {
              "name": "苏木",
              "link": "https://github.com/docs-site"
            },
            "title": "LV010-看门狗使用实例",
            "date": "2025-09-22 07:31:29",
            "excerpt": "",
            "capture": "一、独立看门狗\n 1. 硬件设计\n独立看门狗属于 STM32F1 的内部资源,只需要软件设置好即可正常工作。我们通过LED灯来指示 STM32F1 的复位情况来看指示独立看门狗的喂狗情况。\n 2. STM32CubeMX配置  \n 2.1 IWDG配置\n&lt;img src=\"./LV010-看门狗使用实例/img/image-20230513193914903.png\" alt=\"image-20230513193914903\" style=\"zoom:80%;\" /\n独立看门狗的配置时间比较简单:\n①、选择IWDG;\n②、勾选Activated,表示启用独立看门狗;\n③、看门狗的时钟分频"
          },
          {
            "url": "/sdoc/peripheral/watchdog/126b09043ae916195cb39541.html",
            "relativePath": "/sdoc/20-基本外设篇/20-看门狗/LV001-看门狗简介.html",
            "frontmatter": {
              "title": "LV001-看门狗简介",
              "date": "2025-09-22 07:28:09",
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/peripheral/watchdog/126b09043ae916195cb39541",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "95cb3954118d49beb6d6912a9e3cb522",
                "useduuid": "95cb39541"
              }
            },
            "author": {
              "name": "苏木",
              "link": "https://github.com/docs-site"
            },
            "title": "LV001-看门狗简介",
            "date": "2025-09-22 07:28:09",
            "excerpt": "",
            "capture": "一、看门狗简介\n 1. 简介\n在由单片机构成的微型计算机系统中,由于单片机的工作常常会受到来自外界电磁场的干扰,造成程序的跑飞,而陷入死循环,程序的正常运行被打断,由单片机控制的系统无法继续工作,会造成整个系统的陷入停滞状态,发生不可预料的后果,所以出于对单片机运行状态进行实时监测的考虑,便产生了一种专门用于监测单片机程序运行状态的模块或者芯片,俗称“看门狗”(watchdog) 。\n看门狗主要用于解决什么问题呢?在启动正常运行的时候,系统不能复位。在系统跑飞(程序异常执行)的情况,系统复位,程序重新执行。看门狗的本质也是一个定时器,在启动后,需要在一定时间内再给它一个信号,俗称“喂狗”,如果"
          },
          {
            "url": "/sdoc/peripheral/timer/126b08f71bb31f61f9e3c819.html",
            "relativePath": "/sdoc/20-基本外设篇/15-定时器/LV105-自定义延时函数.html",
            "frontmatter": {
              "title": "LV105-自定义延时函数",
              "date": "2025-09-21 21:28:51",
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/peripheral/timer/126b08f71bb31f61f9e3c819",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "1f9e3c81978544cfa5b36e225514bb0d",
                "useduuid": "1f9e3c819"
              }
            },
            "author": {
              "name": "苏木",
              "link": "https://github.com/docs-site"
            },
            "title": "LV105-自定义延时函数",
            "date": "2025-09-21 21:28:51",
            "excerpt": "",
            "capture": "在20-基本外设篇/15-定时器/LV105-自定义延时函数.md中我们分析了HAL库中的HAL_Delay()函数,它是借助SysTick定时器的中断来实现的,就意味着不能在其他中断中使用这个延时函数,那么有没有其他办法实现延时?\n 一、时钟摘取法  \n我们来看一下正点原子SYSTEM目录下的delay.c中的delay_us函数。\n 1. delay_init()\n在main函数中是这样调用的:\n```c\ndelay_init(72);\n```\n这个函数的定义(删除了OS相关的内容)如下:\n```c\n/**\n * @brief     初始化延迟函数\n * @param     syscl"
          },
          {
            "url": "/sdoc/peripheral/timer/126b08f7176d34627620ad1b.html",
            "relativePath": "/sdoc/20-基本外设篇/15-定时器/LV100-SysTick定时器简介.html",
            "frontmatter": {
              "title": "LV100-SysTick定时器简介",
              "date": "2025-09-21 21:17:57",
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/peripheral/timer/126b08f7176d34627620ad1b",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "27620ad1b6704f3ab64b6bc4d14b88f4",
                "useduuid": "27620ad1b"
              }
            },
            "author": {
              "name": "苏木",
              "link": "https://github.com/docs-site"
            },
            "title": "LV100-SysTick定时器简介",
            "date": "2025-09-21 21:17:57",
            "excerpt": "",
            "capture": "这一部分我们可以查看Cortex-M3 权威指南的 第8章NVIC与中断控制 中的 SysTick定时器  小节。\n 一、SysTick定时器简介\nSysTick定时器(又名系统滴答定时器)是存在于Cortex-M3的一个定时器,只要是ARM Cotex-M系列内核的MCU都包含这个定时器。使用内核的SysTick定时器来实现延时,可以不占用系统定时器,节约资源。由于SysTick是在CPU核内部实现的,跟MCU外设无关, 因此它的代码可以在不同厂家之间移植。  \nSysTick定时器被捆绑在NVIC中,用于产生SYSTICK异常(异常号: 15)。在以前,大多操作系统需要一个硬件定时器来产生"
          },
          {
            "url": "/sdoc/peripheral/timer/126b08f6ae2512a51a9eec42.html",
            "relativePath": "/sdoc/20-基本外设篇/15-定时器/LV090-高级定时器PWM输入.html",
            "frontmatter": {
              "title": "LV090-高级定时器PWM输入",
              "date": "2025-09-21 18:48:05",
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/peripheral/timer/126b08f6ae2512a51a9eec42",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "51a9eec423e4412c99aa8247ccd2092d",
                "useduuid": "51a9eec42"
              }
            },
            "author": {
              "name": "苏木",
              "link": "https://github.com/docs-site"
            },
            "title": "LV090-高级定时器PWM输入",
            "date": "2025-09-21 18:48:05",
            "excerpt": "",
            "capture": "本小节我们来学习使用高级定时器 PWM 输入模式, 此模式是输入捕获模式的一个特例。PWM 输入模式经常被应用于测量 PWM 脉宽和频率。 PWM 输入模式在《STM32F10xxx 参考手册_V10(中文版) .pdf》 手册 216 页有详细的文字描述。\n 一、工作原理\n&lt;img src=\"./LV090-高级定时器PWM输入/img/image-20240114135116438.png\" alt=\"image-20240114135116438\" style=\"zoom:50%;\" /\n第一,确定定时器时钟源。本实验中我们使用内部时钟(CK_INT), F1 系列高级定时器挂载在"
          },
          {
            "url": "/sdoc/peripheral/timer/126b08f6ad8f2e0487d6c438.html",
            "relativePath": "/sdoc/20-基本外设篇/15-定时器/LV085-高级定时器互补输出.html",
            "frontmatter": {
              "title": "LV085-高级定时器互补输出",
              "date": "2025-09-21 18:46:55",
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/peripheral/timer/126b08f6ad8f2e0487d6c438",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "487d6c4384224a459898d149b83609e0",
                "useduuid": "487d6c438"
              }
            },
            "author": {
              "name": "苏木",
              "link": "https://github.com/docs-site"
            },
            "title": "LV085-高级定时器互补输出",
            "date": "2025-09-21 18:46:55",
            "excerpt": "",
            "capture": "一、基本概念\n什么是互补输出?还带死区控制?  我们来简单了解一下。关于互补输出和死区插入的更多内容可以看《STM32F10xxx 参考手册_V10(中文版) .pdf》手册的 13.3.11 小节 。\n 1. 互补输出\n&lt;img src=\"./LV085-高级定时器互补输出/img/image-20240114131925473.png\" alt=\"image-20240114131925473\" style=\"zoom:50%;\" /\n&lt;p align=\"center\"&gt;\n    图一-1 互补输出\n&lt;/p&gt;\n上图中, CH1 输出黄色的 PWM,它的互补通道"
          },
          {
            "url": "/sdoc/peripheral/timer/126b08f6aca0253099c9ba29.html",
            "relativePath": "/sdoc/20-基本外设篇/15-定时器/LV080-高级定时器输出比较模式.html",
            "frontmatter": {
              "title": "LV080-高级定时器输出比较模式",
              "date": "2025-09-21 18:44:16",
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/peripheral/timer/126b08f6aca0253099c9ba29",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "099c9ba29781487ab77ef3977ecd7122",
                "useduuid": "099c9ba29"
              }
            },
            "author": {
              "name": "苏木",
              "link": "https://github.com/docs-site"
            },
            "title": "LV080-高级定时器输出比较模式",
            "date": "2025-09-21 18:44:16",
            "excerpt": "",
            "capture": "一、输出比较模式输出PWM\n我们来学习使用高级定时器输出比较模式下翻转功能,通过定时器 4 个通道分别输出 4 个 50%占空比、不同相位的 PWM。\n输出比较模式下翻转功能作用是:当计数器的值等于捕获/比较寄存器影子寄存器的值时,OC1REF 发生翻转,进而控制通道输出(OCx)翻转。通过翻转功能实现输出 PWM 的具体原理如下: PWM 频率由自动重载寄存器(TIMx_ARR)的值决定,在这个过程中,只要自动重载寄存器的值不变,那么 PWM 占空比就固定为 50%。我们可以通过捕获/比较寄存器(TIMx_CCRx)的值改变 PWM 的相位。生成 PWM 的原理如图 :\n&lt;img sr"
          },
          {
            "url": "/sdoc/peripheral/timer/126b08f6ac4f2bb02b42403e.html",
            "relativePath": "/sdoc/20-基本外设篇/15-定时器/LV075-高级定时器PWM输出.html",
            "frontmatter": {
              "title": "LV075-高级定时器PWM输出",
              "date": "2025-09-21 18:43:35",
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/peripheral/timer/126b08f6ac4f2bb02b42403e",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "02b42403e6334b1e88b3aefe535488bf",
                "useduuid": "02b42403e"
              }
            },
            "author": {
              "name": "苏木",
              "link": "https://github.com/docs-site"
            },
            "title": "LV075-高级定时器PWM输出",
            "date": "2025-09-21 18:43:35",
            "excerpt": "",
            "capture": "一、基本原理\n要实现定时器输出指定个数 PWM,只需要掌握下面几点内容:\n- 第一,定时器是如何输出 PWM 的,这部分的知识和前面是一样的。但是需要注意的是:我们需要把 MOE 位置 1,这样高级定时器的通道才能输出。\n- 第二,要清楚重复计数器特性,设置重复计数器寄存器 RCR 的值为 N,那么更新事件将在定时器发生 N+1 次上溢或下溢时发生。换句话来说就是,想要指定输出 N 个 PWM,只需要把N-1 写入 RCR 寄存器。因为在边沿对齐模式下,定时器溢出周期对应着 PWM 周期,我们只要在更新事件发生时,停止输出 PWM 就行。\n- 第三,为了保证定时器输出指定个数的 PWM 后,定"
          },
          {
            "url": "/sdoc/peripheral/timer/126b08f6abf821065c6674f2.html",
            "relativePath": "/sdoc/20-基本外设篇/15-定时器/LV070-高级定时器简介.html",
            "frontmatter": {
              "title": "LV070-高级定时器简介",
              "date": "2025-09-21 18:42:48",
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/peripheral/timer/126b08f6abf821065c6674f2",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "65c6674f24194a5c905c5931e3b1bb25",
                "useduuid": "65c6674f2"
              }
            },
            "author": {
              "name": "苏木",
              "link": "https://github.com/docs-site"
            },
            "title": "LV070-高级定时器简介",
            "date": "2025-09-21 18:42:48",
            "excerpt": "",
            "capture": "从这一节开始主要来学习高级定时器, STM32F103 有 2 个高级定时器(TIM1 和 TIM8)。将会通过四个实验来学习高级定时器的各个功能,分别是高级定时器输出指定个数 PWM 实验、高级定时器输出比较模式实验、高级定时器互补输出带死区控制实验和高级定时器 PWM 输入模式实验。  \n 一、高级定时器框图\n高级定时器的框图和通用定时器框图很类似,只是添加了其它的一些功能,如:重复计数器、带死区控制的互补输出通道、断路输入等。这些功能在高级定时器框图的位置如下:  \n&lt;img src=\"./LV070-高级定时器简介/img/image-20240114124949607.png\""
          },
          {
            "url": "/sdoc/peripheral/timer/126b08f6ab873bc74e57e381.html",
            "relativePath": "/sdoc/20-基本外设篇/15-定时器/LV050-通用定时器脉冲计数.html",
            "frontmatter": {
              "title": "LV050-通用定时器脉冲计数",
              "date": "2025-09-21 18:41:35",
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/peripheral/timer/126b08f6ab873bc74e57e381",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "74e57e3815ac43a9b2ad64b853530fde",
                "useduuid": "74e57e381"
              }
            },
            "author": {
              "name": "苏木",
              "link": "https://github.com/docs-site"
            },
            "title": "LV050-通用定时器脉冲计数",
            "date": "2025-09-21 18:41:35",
            "excerpt": "",
            "capture": "前面我们介绍了通用定时器的四类时钟源,这一节我们来学习使用通用定时器的外部时钟模式 1 这类时钟源。我们通过脉冲计数实验来学习。\n 一、需求说明\n前面的三个通用定时器实验的时钟源都是来自内部时钟 (CK_INT),在脉冲计数的使用中我们将使用外部时钟模式 1:外部输入引脚 (TIx)作为定时器的时钟源。关于这个外部输入引脚(TIx),我们使用 WK_UP 按键按下产生的高电平脉冲作为定时器的计数器时钟,每按下一次按键产生一次高电平脉冲,计数器加一。  \n 二、定时器资源说明\n&lt;img src=\"./LV050-通用定时器脉冲计数/img/image-20240114104935667.p"
          },
          {
            "url": "/sdoc/peripheral/timer/126b08f6ab6404f5fdfb5648.html",
            "relativePath": "/sdoc/20-基本外设篇/15-定时器/LV045-通用定时器输入捕获.html",
            "frontmatter": {
              "title": "LV045-通用定时器输入捕获",
              "date": "2025-09-21 18:41:00",
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/peripheral/timer/126b08f6ab6404f5fdfb5648",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "5fdfb5648d1542adb31bc692aaebfac4",
                "useduuid": "5fdfb5648"
              }
            },
            "author": {
              "name": "苏木",
              "link": "https://github.com/docs-site"
            },
            "title": "LV045-通用定时器输入捕获",
            "date": "2025-09-21 18:41:00",
            "excerpt": "",
            "capture": "一、脉宽测量基本原理\n输入捕获模式可以用来测量脉冲宽度或者测量频率。我们以测量脉宽为例,用一个简图来说明输入捕获脉宽测量原理:\n&lt;img src=\"./LV045-通用定时器输入捕获/img/image-20240114103053113.png\" alt=\"image-20240114103053113\" style=\"zoom: 33%;\" /\nt1 到 t2 的时间段,就是我们需要测量的高电平时间。测量方法如下:假如定时器工作在递增计数模式,首先设置定时器通道 x 为上升沿捕获,这样在 t1 时刻上升沿到来时,就会发生捕获事件。这里我们还会打开捕获中断,所以捕获事件发生就意味着捕获"
          },
          {
            "url": "/sdoc/peripheral/timer/126b08f6aac20ab7bc66d777.html",
            "relativePath": "/sdoc/20-基本外设篇/15-定时器/LV040-通用定时器PWM输出.html",
            "frontmatter": {
              "title": "LV040-通用定时器PWM输出",
              "date": "2025-09-21 18:39:38",
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/peripheral/timer/126b08f6aac20ab7bc66d777",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "7bc66d777a344e838bab8b97634f96bc",
                "useduuid": "7bc66d777"
              }
            },
            "author": {
              "name": "苏木",
              "link": "https://github.com/docs-site"
            },
            "title": "LV040-通用定时器PWM输出",
            "date": "2025-09-21 18:39:38",
            "excerpt": "",
            "capture": "一、PWM产生原理\n脉冲宽度调制(PWM),是英文“Pulse Width Modulation”的缩写,简称脉宽调制,是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术。我们可以让定时器产生PWM,在计数器频率固定时, PWM 频率或者周期由自动重载寄存器(TIMx_ARR)的值决定,其占空比由捕获/比较寄存器(TIMx_CCRx)的值决定。 PWM 产生原理示意图如下图所示:  \n&lt;img src=\"./LV040-通用定时器PWM输出/img/image-20240114095044325.png\" alt=\"image-20240114095044325\" styl"
          },
          {
            "url": "/sdoc/peripheral/timer/126b08f6aa9f293ebbce26b2.html",
            "relativePath": "/sdoc/20-基本外设篇/15-定时器/LV035-通用定时器的中断.html",
            "frontmatter": {
              "title": "LV035-通用定时器的中断",
              "date": "2025-09-21 18:39:03",
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/peripheral/timer/126b08f6aa9f293ebbce26b2",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "ebbce26b2eed4f0e8e7db13c33566c30",
                "useduuid": "ebbce26b2"
              }
            },
            "author": {
              "name": "苏木",
              "link": "https://github.com/docs-site"
            },
            "title": "LV035-通用定时器的中断",
            "date": "2025-09-21 18:39:03",
            "excerpt": "",
            "capture": "一、相关寄存器\n我们来学习使用通用定时器中断,学习 TIM2/TIM3/TIM4/TIM5 的几个与定时器中断相关且重要的寄存器。主要以定时器3为例。\n 1. 控制寄存器 1(TIMx_CR1)\nTIM2/TIM3/TIM4/TIM5 的控制寄存器 1 描述如图:\n&lt;img src=\"./LV035-通用定时器的中断/img/image-20240114094348633.png\" alt=\"image-20240114094348633\" style=\"zoom:50%;\" /\n上图中只截出了中断需要用的一些位,其中:  \n位 7(APRE)用于控制自动重载寄存器是否进行缓冲,如果 A"
          },
          {
            "url": "/sdoc/peripheral/timer/126b08f6aa441b536809798e.html",
            "relativePath": "/sdoc/20-基本外设篇/15-定时器/LV030-通用定时器简介.html",
            "frontmatter": {
              "title": "LV030-通用定时器简介",
              "date": "2025-09-21 18:38:12",
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/peripheral/timer/126b08f6aa441b536809798e",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "36809798e68046309b813b9706a23f8a",
                "useduuid": "36809798e"
              }
            },
            "author": {
              "name": "苏木",
              "link": "https://github.com/docs-site"
            },
            "title": "LV030-通用定时器简介",
            "date": "2025-09-21 18:38:12",
            "excerpt": "",
            "capture": "一、STM32的通用定时器\nSTM32F103 的通用定时器有 4 个,如下所示:  \n&lt;img src=\"./LV030-通用定时器简介/img/image-20240114085044691.png\" alt=\"image-20240114085044691\" /\n该表可以参考《STM32数据手册》的2.3.17 Timers and watchdogs小节。由上表知道: 该 STM32 芯片的计数器都是 16 位的。 通用定时器和高级定时器其实也就是在基本定时器的基础上,添加了一些其他功能,如: 输入捕获、 输出比较、输出 PWM 和单脉冲模式等。 而通用定时器数量较多,其特性也有"
          },
          {
            "url": "/sdoc/peripheral/timer/basic/126b08f6a8e32e3427f3a2b2.html",
            "relativePath": "/sdoc/20-基本外设篇/15-定时器/LV001-基本定时器简介.html",
            "frontmatter": {
              "title": "LV001-基本定时器简介",
              "date": "2025-09-21 18:34:59",
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/peripheral/timer/basic/126b08f6a8e32e3427f3a2b2",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "427f3a2b26fc476299e1f6f52f2c33ad",
                "useduuid": "427f3a2b2"
              }
            },
            "author": {
              "name": "苏木",
              "link": "https://github.com/docs-site"
            },
            "title": "LV001-基本定时器简介",
            "date": "2025-09-21 18:34:59",
            "excerpt": "",
            "capture": "一、基本定时器简介\n 1. STM32的基本定时器\nSTM32F103 有两个基本定时器 TIM6 和 TIM7,它们的功能完全相同,资源是完全独立的,可以同时使用。其主要特性如下: 16 位自动重载递增计数器, 16 位可编程预分频器,预分频系数 1\\~65536,用于对计数器时钟频率进行分频,还可以触发 DAC 的同步电路,以及生成中断/DMA 请求。  \n 2. 基本定时器框图  \n&lt;img src=\"./LV001-基本定时器简介/img/image-20240114083136570.png\" alt=\"image-20240114083136570\" style=\"zoom:"
          },
          {
            "url": "/sdoc/peripheral/uart/126b08f61664097f4a0617fc.html",
            "relativePath": "/sdoc/20-基本外设篇/10-UART/LV020-串口收发实例.html",
            "frontmatter": {
              "title": "LV020-串口收发实例",
              "date": "2025-09-21 14:59:56",
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/peripheral/uart/126b08f61664097f4a0617fc",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "f4a0617fc94447a8962e262d9db98842",
                "useduuid": "f4a0617fc"
              }
            },
            "author": {
              "name": "苏木",
              "link": "https://github.com/docs-site"
            },
            "title": "LV020-串口收发实例",
            "date": "2025-09-21 14:59:56",
            "excerpt": "",
            "capture": "一、串口打印实现\n说明,这里使用STM32CubeM进行配置和导出工程。\n 1. 硬件设计\n我使用的是正点原子的战舰V3,串口部分电路如下,串口 1 与 USB 串口并没有在 PCB 上连接在一起,需要通过跳线帽来连接一下。这里我们把 P4 的 RXD 和 TXD 用跳线帽与 PA9 和 PA10 连接起来。  \n&lt;img src=\"./LV020-串口收发实例/img/image-20230502122716375.png\" alt=\"image-20230502122716375\" style=\"zoom: 67%;\" /\n 2. STM32CubeMX配置\n注意这里的时钟都没配置,"
          },
          {
            "url": "/sdoc/peripheral/uart/126b08f6146d2d238b102738.html",
            "relativePath": "/sdoc/20-基本外设篇/10-UART/LV010-STM32的串口.html",
            "frontmatter": {
              "title": "LV010-STM32的串口",
              "date": "2025-09-21 14:54:53",
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/peripheral/uart/126b08f6146d2d238b102738",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "38b1027380d146cb959e571687931c97",
                "useduuid": "38b102738"
              }
            },
            "author": {
              "name": "苏木",
              "link": "https://github.com/docs-site"
            },
            "title": "LV010-STM32的串口",
            "date": "2025-09-21 14:54:53",
            "excerpt": "",
            "capture": "一、STM32的串口\n 1. 概述\n在嵌入式中,很多MCU和外设模块都集成有UART外设。 STM32F103有3个通用同步异步收发器( Universal synchronous asynchronous receiver transmitter, USART), 2个通用异步收发器( Universalasynchronous receiver transmitter, UART) 。 USART和UART的主要区别在于, USART支持同步通信, 该模式有一根时钟线提供时钟。这里需要说明一下,由于在STM中文或者是英文参考手册,相关的介绍章节主要是关于USART,但是他们都是通用的,所以"
          },
          {
            "url": "/sdoc/peripheral/uart/126b08f60edb3b6ac7962cbf.html",
            "relativePath": "/sdoc/20-基本外设篇/10-UART/LV001-串口通信简介.html",
            "frontmatter": {
              "title": "LV001-串口通信简介",
              "date": "2025-09-21 14:40:27",
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/peripheral/uart/126b08f60edb3b6ac7962cbf",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "ac7962cbf7d245659539f5436bb59e37",
                "useduuid": "ac7962cbf"
              }
            },
            "author": {
              "name": "苏木",
              "link": "https://github.com/docs-site"
            },
            "title": "LV001-串口通信简介",
            "date": "2025-09-21 14:40:27",
            "excerpt": "",
            "capture": "一、数据通信\n在单片机的应用中,数据通信是必不可少的一部分,比如:单片机和上位机、单片机和外围器件之间,它们都有数据通信的需求。由于设备之间的电气特性、传输速率、可靠性要求各不相同,于是就有了各种通信类型、通信协议,我们最常的有: USART、 IIC、 SPI、 CAN、 USB等。\n 1. 数据通信方式\n按数据通信方式分类,可分为串行通信和并行通信两种。串行和并行的对比如下图所示:  \n串行通信的基本特征是数据逐位顺序依次传输,优点是传输线少、 布线成本低、 灵活度高等优点,一般用于近距离人机交互, 特殊处理后也可以用于远距离, 缺点就是传输速率低。而并行通信是数据各位可以通过多条线同时传"
          },
          {
            "url": "/sdoc/basic/stm32clock/126b08f5dcd1392ef8558043.html",
            "relativePath": "/sdoc/10-基础篇/40-STM32时钟/LV010-STM32F1的SYSCLK.html",
            "frontmatter": {
              "title": "LV010-STM32F1的SYSCLK",
              "date": "2025-09-21 13:12:17",
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/basic/stm32clock/126b08f5dcd1392ef8558043",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "ef8558043211434e9696dd7586e40951",
                "useduuid": "ef8558043"
              }
            },
            "author": {
              "name": "苏木",
              "link": "https://github.com/docs-site"
            },
            "title": "LV010-STM32F1的SYSCLK",
            "date": "2025-09-21 13:12:17",
            "excerpt": "<p>这一部分我们来详细了解一下系统时钟SYSCLK。</p>\n",
            "capture": "这一部分我们来详细了解一下系统时钟SYSCLK。\n 一、PLL 作为系统时钟源  \n在 STM32 中, 锁相环的输出也可以作为芯片系统的时钟源。 根据STM32F1的时钟结构,使用锁相环时只需要进行三个部分的配置。为了方便查看,这里直接截取STM32CubeMX中时钟树中使用 PLL 作为系统时钟源的配置部分,  \n- PLLXTPRE: HSE 分频器作为 PLL 输入 (HSE divider for PLL entry)  \n即图 11.1.2.1 在标注为①的地方, 它专门用于 HSE, ST 设计它有两种方式,并把它的控制功能放在 RCC_CFGR 寄存器中, 我们引用如图:\n从 "
          },
          {
            "url": "/sdoc/basic/stm32clock/126b08f5d89727a6ee395582.html",
            "relativePath": "/sdoc/10-基础篇/40-STM32时钟/LV001-STM32F1时钟系统.html",
            "frontmatter": {
              "title": "LV001-STM32F1时钟系统",
              "date": "2025-09-21 13:01:35",
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/basic/stm32clock/126b08f5d89727a6ee395582",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "6ee395582b8f401e806f3f6b8aac7e4a",
                "useduuid": "6ee395582"
              }
            },
            "author": {
              "name": "苏木",
              "link": "https://github.com/docs-site"
            },
            "title": "LV001-STM32F1时钟系统",
            "date": "2025-09-21 13:01:35",
            "excerpt": "",
            "capture": "一、STM32时钟树概述\n 1. 时钟系统\n时钟系统是由振荡器(信号源)、定时唤醒器、分频器等组成的电路。常用的信号源有晶体振荡器和RC振荡器。\n时钟是嵌入式系统的脉搏,处理器内核在时钟驱动下完成指令执行,状态变换等动作,外设部件在时钟的驱动下完成各种工作,比如串口数据的发送、A/D转换、定时器计数等等。因此时钟对于计算机系统是至关重要的,通常时钟系统出现问题也是致命的,比如振荡器不起振、振荡不稳、停振等。\n&lt;img src=\"./LV001-STM32F1时钟系统/img/image-20230502201120397.png\" alt=\"image-20230502201120397"
          },
          {
            "url": "/sdoc/peripheral/gpio/126b08f596281cc89a3bc4c6.html",
            "relativePath": "/sdoc/20-基本外设篇/01-GPIO/LV045-外部中断实例.html",
            "frontmatter": {
              "title": "LV045-外部中断实例",
              "date": "2025-09-21 11:31:28",
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/peripheral/gpio/126b08f596281cc89a3bc4c6",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "89a3bc4c6a9b4249afce4152ca5d1241",
                "useduuid": "89a3bc4c6"
              }
            },
            "author": {
              "name": "苏木",
              "link": "https://github.com/docs-site"
            },
            "title": "LV045-外部中断实例",
            "date": "2025-09-21 11:31:28",
            "excerpt": "",
            "capture": "一、硬件原理图\n&lt;img src=\"./LV045-外部中断实例/img/image-20230501153706041.png\" alt=\"image-20230501153706041\" style=\"zoom: 67%;\" /\n 二、STM32CubeMX配置\n 1. GPIO引脚配置\n在STM32CubeMX软件中,我们选择好引脚后,GPIO的功能中会自动对应好与EXIT的关系,当然,我们也可以看 STM32中文参考手册的 9.2.5 外部中断/事件线路映像一节。\n(1)PA0 所接按键按下时为高电平,默认时我们设置为下拉,也就是默认时低电平:\n&lt;img src=\"./LV"
          },
          {
            "url": "/sdoc/peripheral/gpio/126b08f58a5c2c09e1d6100f.html",
            "relativePath": "/sdoc/20-基本外设篇/01-GPIO/LV040-外部中断.html",
            "frontmatter": {
              "title": "LV040-外部中断",
              "date": "2025-09-21 11:01:08",
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/peripheral/gpio/126b08f58a5c2c09e1d6100f",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "9e1d6100f7d74737974bd9674a8ba8c0",
                "useduuid": "9e1d6100f"
              }
            },
            "author": {
              "name": "苏木",
              "link": "https://github.com/docs-site"
            },
            "title": "LV040-外部中断",
            "date": "2025-09-21 11:01:08",
            "excerpt": "",
            "capture": "&gt;\n&gt;- 10-基础篇/30-STM32的中断/LV001-STM32中断简介.md\n&gt;- 10-基础篇/01-概述/LV040-CortexM3异常.md\n 一、EXTI\n 1. 简介\nSTM32的中断和中断优先级,知道了所有外设中断都由NVIC管理,比如USART、 ADC、 I2C、 SPI等。 GPIO产生的中断也不例外,但在给NVIC管理之前,还有一个EXTI( External interrupt/event controller,外部中断/事件控制器) 先处理一下 :\n&lt;img src=\"./LV040-外部中断/img/image-20230501150"
          },
          {
            "url": "/sdoc/basic/stm32interrupt/126b08f57241322fa604782d.html",
            "relativePath": "/sdoc/10-基础篇/30-STM32的中断/LV001-STM32中断简介.html",
            "frontmatter": {
              "title": "LV001-STM32中断简介",
              "date": "2025-09-21 10:39:37",
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/basic/stm32interrupt/126b08f57241322fa604782d",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "fa604782d9e94117829d0f1a00c0d99d",
                "useduuid": "fa604782d"
              }
            },
            "author": {
              "name": "苏木",
              "link": "https://github.com/docs-site"
            },
            "title": "LV001-STM32中断简介",
            "date": "2025-09-21 10:39:37",
            "excerpt": "",
            "capture": "一、基本概念\n生活中,有这样一个场景,我现在正在看电视剧,然后这个时候突然有人敲门,我该怎么做?正常我们应该是暂停电视剧,然后去开门,处理有人敲门这件事,这件事处理完后,回到电视机前,继续看电视剧,这就是一个中断。\n在处理器中,中断是一个过程,即CPU在正常执行程序的过程中,遇到外部/内部的紧急事件需要处理,暂时中止当前程序的执行,转而去为处理紧急的事件,待处理完毕后再返回被打断的程序处继续往下执行。中断在计算机多任务处理,尤其是即时系统中尤为重要。比如uCOS,FreeRTOS等。\n中断存在的意义就在于中断能提高CPU的效率,同时能对突发事件做出实时处理。实现程序的并行化,实现嵌入式系统进程"
          },
          {
            "url": "/sdoc/peripheral/gpio/126b08e8078f1f2b7ad1d6a6.html",
            "relativePath": "/sdoc/20-基本外设篇/01-GPIO/LV030-按键检测.html",
            "frontmatter": {
              "title": "LV030-按键检测",
              "date": "2025-09-20 22:46:55",
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/peripheral/gpio/126b08e8078f1f2b7ad1d6a6",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "b7ad1d6a65df41fab1ae6bd4b2de28b9",
                "useduuid": "b7ad1d6a6"
              }
            },
            "author": {
              "name": "苏木",
              "link": "https://github.com/docs-site"
            },
            "title": "LV030-按键检测",
            "date": "2025-09-20 22:46:55",
            "excerpt": "",
            "capture": "一、基本步骤\n- (1)使能IO口时钟。\n- (2)初始化IO口模式,包括GPIO工作模式(输入)、IO口速度。\n- (3)循环读取IO电平,判断按键是否按下。\n 二、硬件原理图\n&lt;img src=\"./LV030-按键检测/img/image-20230506221837788.png\" alt=\"image-20230506221837788\" style=\"zoom:50%;\" /\n 三、STM32CubeMX配置\n&lt;img src=\"./LV030-按键检测/img/image-20230506222110861.png\" alt=\"image-20230506222110"
          },
          {
            "url": "/sdoc/peripheral/gpio/126b08e805ca1e15c40474c4.html",
            "relativePath": "/sdoc/20-基本外设篇/01-GPIO/LV020-GPIO控制LED.html",
            "frontmatter": {
              "title": "LV020-GPIO控制LED",
              "date": "2025-09-20 22:42:02",
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/peripheral/gpio/126b08e805ca1e15c40474c4",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "5c40474c47fc44e49114f4489f7fb359",
                "useduuid": "5c40474c4"
              }
            },
            "author": {
              "name": "苏木",
              "link": "https://github.com/docs-site"
            },
            "title": "LV020-GPIO控制LED",
            "date": "2025-09-20 22:42:02",
            "excerpt": "",
            "capture": "一、基本步骤\n这个实例主要是通过GPIO点亮LED灯。一般步骤如下:\n- (1)使能IO口时钟。\n- (2)初始化IO口模式,包括GPIO工作模式(输出)、IO口速度。使用STM32CubeMX软件来进行图形化配置的话要注意一下上下拉的设置,不然很可能有莫名其妙的坑。\n- (3)操作IO口,输出高低电平。\n【注意】可以一次初始化一个IO组下的多个IO,前提是这些IO口的配置方式一样。\n 二、硬件原理图\n&lt;img src=\"./LV020-GPIO控制LED/img/image-20230506221050587.png\" alt=\"image-20230506221050587\" sty"
          },
          {
            "url": "/sdoc/peripheral/gpio/126b08e804d303ad5b541ecd.html",
            "relativePath": "/sdoc/20-基本外设篇/01-GPIO/LV010-输入输出模式详解.html",
            "frontmatter": {
              "title": "LV010-输入输出模式详解",
              "date": "2025-09-20 22:39:55",
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/peripheral/gpio/126b08e804d303ad5b541ecd",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "d5b541ecde0f4e1799e17d09e88a33fa",
                "useduuid": "d5b541ecd"
              }
            },
            "author": {
              "name": "苏木",
              "link": "https://github.com/docs-site"
            },
            "title": "LV010-输入输出模式详解",
            "date": "2025-09-20 22:39:55",
            "excerpt": "",
            "capture": "这篇笔记主要是详细学习一下GPIO输入输出各种模式(推挽、开漏、准双向端口)。\n 一、概述\n 1. IO模式说明\n概括地说,IO的功能模式大致可以分为输入、输出以及输入输出双向三大类。其中作为基本输入IO,相对比较简单,主要涉及的知识点就是高阻态;作为输出IO,相比于输入复杂一些,工作模式主要有开漏(Open Drain)模式和推挽(Push-Pull)模式,这一部分涉及的知识点比较多;对于输入输出IO,容易产生疑惑的地方是准双向和双向端口的区别。\n 2. MOS管基础\n这里学习一下P-MOS和N-MOS导通的条件,前面后边都给我整糊涂了,这里记录一下,如下图为P-MOS和N-MOS导通时的电"
          },
          {
            "url": "/sdoc/peripheral/gpio/126b08e802d21f6e4f658296.html",
            "relativePath": "/sdoc/20-基本外设篇/01-GPIO/LV001-STM32的GPIO简介.html",
            "frontmatter": {
              "title": "LV001-STM32的GPIO简介",
              "date": "2025-09-20 22:34:42",
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/peripheral/gpio/126b08e802d21f6e4f658296",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "e4f658296d8f440694a80e81f31777d4",
                "useduuid": "e4f658296"
              }
            },
            "author": {
              "name": "苏木",
              "link": "https://github.com/docs-site"
            },
            "title": "LV001-STM32的GPIO简介",
            "date": "2025-09-20 22:34:42",
            "excerpt": "",
            "capture": "一、GPIO简介\nGPIO是通用输入输出端口的简称,简单来说就是STM32可控制的引脚,STM32芯片的GPIO引脚与外部设备连接起来,从而实现与外部通讯、控制以及数据采集的功能。 STM32芯片的GPIO被分成很多组,每组有16个引脚(也有可能少于16个),如型号为STM32F103ZET6型号的芯片有GPIOA、GPIOB、GPIOC至GPIOG共7组GPIO,一共就有16x7=112个IO,该芯片一共144个引脚,其中GPIO引脚就占了一大部分,所有的GPIO引脚都有基本的输入输出功能。\n最基本的输出功能是由STM32控制引脚输出高、低电平,实现开关控制,如把GPIO引脚接入到LED灯,"
          },
          {
            "url": "/sdoc/basic/stm32setup/126b08e7afad049a561ccf1b.html",
            "relativePath": "/sdoc/10-基础篇/20-STM32的启动/LV010-在内部SRAM调试.html",
            "frontmatter": {
              "title": "LV010-在内部SRAM调试",
              "date": "2025-09-20 20:21:57",
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/basic/stm32setup/126b08e7afad049a561ccf1b",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "a561ccf1b5d3443c85b0f21280803c3a",
                "useduuid": "a561ccf1b"
              }
            },
            "author": {
              "name": "苏木",
              "link": "https://github.com/docs-site"
            },
            "title": "LV010-在内部SRAM调试",
            "date": "2025-09-20 20:21:57",
            "excerpt": "",
            "capture": "一、在RAM中调试代码\n 1. 简介\n一般情况下,我们在 MDK 中编写工程应用后,调试时都是把程序下载到芯片的内部 FLASH 运行测试的,代码的 CODE 及 RW-data 的内容被写入到内部 FLASH 中存储。但在某些应用场合下却不希望或不能修改内部 FLASH 的内容,这时就可以使用 RAM 调试功能了,它的本质是把原来存储在内部 FLASH 的代码 (CODE 及 RW-data 的内容) 改为存储到 SRAM 中 (内部 SRAM 或外部 SDRAM 均可),芯片复位后从 SRAM 中加载代码并运行。 \n 2. 优缺点\n把代码下载到 RAM 中调试有如下优点 :\n(1)下载程序"
          },
          {
            "url": "/sdoc/basic/stm32setup/126b08e78de70b59cd9ba362.html",
            "relativePath": "/sdoc/10-基础篇/20-STM32的启动/LV005-启动过程.html",
            "frontmatter": {
              "title": "LV005-启动过程",
              "date": "2025-09-20 19:35:11",
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/basic/stm32setup/126b08e78de70b59cd9ba362",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "9cd9ba36208d49f99352645293a0d904",
                "useduuid": "9cd9ba362"
              }
            },
            "author": {
              "name": "苏木",
              "link": "https://github.com/docs-site"
            },
            "title": "LV005-启动过程",
            "date": "2025-09-20 19:35:11",
            "excerpt": "",
            "capture": "这一部分主要是分析STM32的启动流程,我们将会接触到内部FLASH的相关内容。\n 一、内部FLASH\n这里了解一下内部Flash的一些内容,并不涉及对内部Flash读写等相关操作。\n 1. FLASH简介\nflash是存储芯片的一种,通过特定的程序可以修改里面的数据。FLASH在电子以及半导体领域内往往表示 Flash Memory 的意思,即平时所说的“闪存”,全名叫 Flash EEPROM Memory。它结合了ROM和RAM的长处,不仅具备电子可擦除可编程(EEPROM)的性能,还可以快速读取数据(NVRAM的优势),使数据不会因为断电而丢失。\n在STM32芯片内部有一个FLASH存"
          },
          {
            "url": "/sdoc/basic/stm32setup/126b08e788e83383285742cb.html",
            "relativePath": "/sdoc/10-基础篇/20-STM32的启动/LV001-启动文件.html",
            "frontmatter": {
              "title": "LV001-启动文件",
              "date": "2025-09-20 19:22:32",
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/basic/stm32setup/126b08e788e83383285742cb",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "3285742cb8d24fba98867646d8e8231b",
                "useduuid": "3285742cb"
              }
            },
            "author": {
              "name": "苏木",
              "link": "https://github.com/docs-site"
            },
            "title": "LV001-启动文件",
            "date": "2025-09-20 19:22:32",
            "excerpt": "",
            "capture": "这一节我们来分析一下MDK工程中的STM32启动文件。\n 一、启动方式\n- 参考10-基础篇/20-STM32的启动/LV005-启动过程.md和Cortex-M3 权威指南的3.8 复位序列\n在离开复位状态后,CM3做的第一件事就是读取下列两个32位整数的值:\n(1)从地址0x0000,0000处取出MSP的初始值。 \n(2)从地址0x0000,0004 处取出PC的初始值——这个值是复位向量,LSB必须是1。然后从这个值所对应的地址处取指。 \n&lt;img src=\"./LV001-启动文件/img/image-20250924071704950.png\" alt=\"image-2025"
          },
          {
            "url": "/sdoc/basic/stm32basic/126b08e7828f108bc0b2f2dc.html",
            "relativePath": "/sdoc/10-基础篇/10-STM32基础/LV030-STM32程序下载.html",
            "frontmatter": {
              "title": "LV030-STM32程序下载",
              "date": "2025-09-20 19:06:07",
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/basic/stm32basic/126b08e7828f108bc0b2f2dc",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "bc0b2f2dc98042cb8e44dc7aa1995faa",
                "useduuid": "bc0b2f2dc"
              }
            },
            "author": {
              "name": "苏木",
              "link": "https://github.com/docs-site"
            },
            "title": "LV030-STM32程序下载",
            "date": "2025-09-20 19:06:07",
            "excerpt": "",
            "capture": "一、创建MDK工程\n- 参考:01-开发工具/01-keil/LV002-工程创建.md\n其中MDK版本和芯片支持包的版本如下:\n- 参考:01-开发工具/02-STM32Cube/LV002-STM32CubeMX工程创建.md\nSTM32CubeMX的版本如下:\n&lt;img src=\"./LV030-STM32程序下载/img/image-20250920223052679.png\" alt=\"image-20250920223052679\" style=\"zoom:50%;\" /\n 二、生成hex文件\n首先当然是生成成果物文件啦,我们使用MDK编写完程序后,要生成一个可以下载到开发板"
          },
          {
            "url": "/sdoc/dev-tool/keil/126b08e76d70287e70afead6.html",
            "relativePath": "/sdoc/01-开发工具/01-keil/LV040-在线调试.html",
            "frontmatter": {
              "title": "LV040-在线调试",
              "date": "2025-09-20 18:52:00",
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/dev-tool/keil/126b08e76d70287e70afead6",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "e70afead6dd14692ad3b3749eb2cad4d",
                "useduuid": "e70afead6"
              }
            },
            "author": {
              "name": "苏木",
              "link": "https://github.com/docs-site"
            },
            "title": "LV040-在线调试",
            "date": "2025-09-20 18:52:00",
            "excerpt": "",
            "capture": "有了J-Link或者ST-Link,我们就可以在线调试代码,这里以我我使用的J-Link为例,简单介绍一下界面,后边的功能就自己摸索吧。\n 一、连接与配置\n最开始肯定是连接好J-Link、电脑和开发板啦,然后就是MDK工程的配置,这个可以看前边J-Link的使用。\n- 01-开发工具/10-下载与调试/LV002-JLink怎么使用.md\n- 01-开发工具/10-下载与调试/LV015-STLink怎么使用.md\n 二、开始在线调试\n 1. 启动\n我们可以点击工具栏的这个按钮进入调试,或者就是从菜单栏【Debug】&rarr;【Start/Stop Debug Session】启动:\n&lt"
          },
          {
            "url": "/sdoc/dev-tool/keil/126b08e6f2e40a653e71bc02.html",
            "relativePath": "/sdoc/01-开发工具/02-STM32Cube/LV015-LD链接脚本.html",
            "frontmatter": {
              "title": "LV040-LD链接脚本",
              "date": "2025-09-20 15:38:28",
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/dev-tool/keil/126b08e6f2e40a653e71bc02",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "53e71bc02dd346aeac5749700b205317",
                "useduuid": "53e71bc02"
              }
            },
            "author": {
              "name": "苏木",
              "link": "https://github.com/docs-site"
            },
            "title": "LV040-LD链接脚本",
            "date": "2025-09-20 15:38:28",
            "excerpt": "<p>这篇笔记主要是STM32CubeMX软件生成的STM32F103ZETx_FLASH.ld链接文件的学习笔记。这篇笔记按照顺序从上到下分析STM32F103ZETx_FLASH.ld文件。关于GNU链接脚本的详细语法我们可以参考这里:<a href=\"https://sourceware.org/binutils/docs/\" target=\"_blank\" rel=\"noreferrer\">Documentation for binutils 2.40 (sourceware.org)</a>,这里好像还有在线的文档。**【注意】**生成Makefile文件的话,链接脚本是自动生成的,并且每一次重新生成的时候,<strong>链接脚本将会重新生成</strong>,也就是说,若是我们修改了链接脚本内容的话,只要我们通过STM32CubeMX更新工程,我们修改的部分都会被删除。</p>\n",
            "capture": "这篇笔记主要是STM32CubeMX软件生成的STM32F103ZETx_FLASH.ld链接文件的学习笔记。这篇笔记按照顺序从上到下分析STM32F103ZETx_FLASH.ld文件。关于GNU链接脚本的详细语法我们可以参考这里:Documentation for binutils 2.40 (sourceware.org),这里好像还有在线的文档。【注意】生成Makefile文件的话,链接脚本是自动生成的,并且每一次重新生成的时候,链接脚本将会重新生成,也就是说,若是我们修改了链接脚本内容的话,只要我们通过STM32CubeMX更新工程,我们修改的部分都会被删除。\n 一、参考资料\n关于链"
          },
          {
            "url": "/sdoc/dev-tool/stm32cube/126b08e6f0211b46eabe9106.html",
            "relativePath": "/sdoc/01-开发工具/02-STM32Cube/LV030-STM32CubeIDE.html",
            "frontmatter": {
              "title": "LV030-STM32CubeIDE",
              "date": "2025-09-20 15:31:21",
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/dev-tool/stm32cube/126b08e6f0211b46eabe9106",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "6eabe9106e39465d81b7853e19f74deb",
                "useduuid": "6eabe9106"
              }
            },
            "author": {
              "name": "苏木",
              "link": "https://github.com/docs-site"
            },
            "title": "LV030-STM32CubeIDE",
            "date": "2025-09-20 15:31:21",
            "excerpt": "",
            "capture": "一、STM32CubeIDE简介\n偶然看到STM32CubeIDE这个么一个软件,它是ST官方推出的IDE,它已经集成了芯片选型,外设配置,代码生成,代码编译,程序烧录和程序调试等一系列功能,可以说STM32CubeMX是它的其中一个功能而已。这里对这个软件做一个简单的了解。\n 1. 简介\nSTM32CubeIDE是一种高级C/C++开发平台,具有STM32微控制器和微处理器的外设配置、代码生成、代码编译和调试功能。它基于Eclipse®/CDT™框架和用于开发的GCC工具链,以及用于调试的GDB。它支持集成数以百计的现有插件,正是这些插件使Eclipse® IDE的功能趋于完整。\nSTM32"
          },
          {
            "url": "/sdoc/dev-tool/stm32cube/126b08e6ef7626b7c442bfe2.html",
            "relativePath": "/sdoc/01-开发工具/02-STM32Cube/LV012-Makefile文件分析.html",
            "frontmatter": {
              "title": "LV012-Makefile文件分析",
              "date": "2025-09-20 15:29:50",
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/dev-tool/stm32cube/126b08e6ef7626b7c442bfe2",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "7c442bfe2f7348608819bf852cebb54e",
                "useduuid": "7c442bfe2"
              }
            },
            "author": {
              "name": "苏木",
              "link": "https://github.com/docs-site"
            },
            "title": "LV012-Makefile文件分析",
            "date": "2025-09-20 15:29:50",
            "excerpt": "",
            "capture": "这篇笔记主要是STM32CubeMX软件生成的Makefile文件的学习笔记。这篇笔记按照顺序从上到下分析Makefile文件。\n 一、完整的Makefile文件\n```makefile\n File automatically-generated by tool: [projectgenerator] version: [3.19.2] date: [Thu Apr 27 16:55:10 CST 2023] \n ------------------------------------------------\n Generic Makefile (based on gcc)\n ChangeLo"
          },
          {
            "url": "/sdoc/dev-tool/stm32cube/126b08e6edcf211c7df7916d.html",
            "relativePath": "/sdoc/01-开发工具/02-STM32Cube/LV010-Makefile管理工程.html",
            "frontmatter": {
              "title": "LV010-Makefile管理工程",
              "date": "2025-09-20 15:25:27",
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/dev-tool/stm32cube/126b08e6edcf211c7df7916d",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "c7df7916d51c40f295ec8bdf0e20a228",
                "useduuid": "c7df7916d"
              }
            },
            "author": {
              "name": "苏木",
              "link": "https://github.com/docs-site"
            },
            "title": "LV010-Makefile管理工程",
            "date": "2025-09-20 15:25:27",
            "excerpt": "",
            "capture": "一、STM32CubeMX生成工程\n 1. 生成Makefile\n前边我们已经熟悉了一下STM32CubeMX软件的使用方法,以及创建和导出MDK工程的过程,接下来我们创建一个含有Makefile文件的工程。\n- (1)【File】&rarr;【New Project】\n&lt;img src=\"./LV010-Makefile管理工程/img/image-20230419232250397.png\" alt=\"image-20230419232250397\"  /\n- (2)【选择芯片型号】&rarr;【Start Project】\n&lt;img src=\"./LV010-Makefile"
          },
          {
            "url": "/sdoc/dev-tool/keil/126b08e6d335070a7fd1934d.html",
            "relativePath": "/sdoc/01-开发工具/01-keil/LV025-SCT文件应用.html",
            "frontmatter": {
              "title": "LV025-SCT文件应用",
              "date": "2025-09-20 14:57:17",
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/dev-tool/keil/126b08e6d335070a7fd1934d",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "a7fd1934dbcb4eef93f57d3dce4e0059",
                "useduuid": "a7fd1934d"
              }
            },
            "author": {
              "name": "苏木",
              "link": "https://github.com/docs-site"
            },
            "title": "LV025-SCT文件应用",
            "date": "2025-09-20 14:57:17",
            "excerpt": "",
            "capture": "这一篇笔记主要是通过SCT文件来实现变量的分配位置,这里需要后边FSMC驱动SRAM的知识。由于内存管理对应用程序非常重要,若修改 sct 文件,不使用默认配置,对工程影响非常大,容易导致出错,所以我们这里也是跟着教程做了两个实验,来学习 sct 文件的应用细节。\n\n 一、自定义SCT文件\n注意这里我们要根据上一节笔记,取消MDK使用默认的SCT文件。\n&lt;img src=\"./LV025-SCT文件应用/img/image-20230529215228408.png\" alt=\"image-20230529215228408\" style=\"zoom: 50%;\" /&gt;\n在 MDK"
          },
          {
            "url": "/sdoc/dev-tool/keil/126b08e6cfb5032dbc05b46a.html",
            "relativePath": "/sdoc/01-开发工具/01-keil/LV020-SCT分散加载文件.html",
            "frontmatter": {
              "title": "LV020-SCT分散加载文件",
              "date": "2025-09-20 14:48:21",
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/dev-tool/keil/126b08e6cfb5032dbc05b46a",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "dbc05b46abca47d8a176762f5148dc50",
                "useduuid": "dbc05b46a"
              }
            },
            "author": {
              "name": "苏木",
              "link": "https://github.com/docs-site"
            },
            "title": "LV020-SCT分散加载文件",
            "date": "2025-09-20 14:48:21",
            "excerpt": "",
            "capture": "这里继续学习MDK的工程文件`*.sct`,使用的工程呢可以去这里下载:ebf_stm32f103_badao_std_code: 野火STM32F103 霸道开发板 标准库教程配套代码 (gitee.com)\n\n 一、sct分散加载文件简介\n当工程按默认配置构建时,MDK会根据我们选择的芯片型号,获知芯片的内部FLASH及内部SRAM存储器概况,生成一个以工程名命名的后缀为\\*.sct的分散加载文件(Linker Control File,scatter loading),链接器根据该文件的配置分配各个节区地址,生成分散加载代码,因此我们通过修改该文件可以定制具体节区的存储位置。例如,我们可"
          },
          {
            "url": "/sdoc/dev-tool/keil/126b08e6a9c4187125e57a5f.html",
            "relativePath": "/sdoc/01-开发工具/01-keil/LV010-程序与编译.html",
            "frontmatter": {
              "title": "LV010-程序与编译",
              "date": "2025-09-20 13:51:08",
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/dev-tool/keil/126b08e6a9c4187125e57a5f",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "125e57a5ff854ebaa58b6fff51b99a11",
                "useduuid": "125e57a5f"
              }
            },
            "author": {
              "name": "苏木",
              "link": "https://github.com/docs-site"
            },
            "title": "LV010-程序与编译",
            "date": "2025-09-20 13:51:08",
            "excerpt": "",
            "capture": "一、编译过程\n 1. 编译过程简介\n我们简单了解下MDK的编译过程,它与其它编译器的工作过程是类似的:\n&lt;img src=\"./LV010-程序与编译/img/MDK002.jpg\" alt=\"MDK编译过程\" style=\"zoom: 67%;\" /\n(1) 编译,MDK软件使用的编译器是 armcc 和 armasm , 它们根据每个C/C++和汇编源文件编译成对应的以“ .o ”为后缀名的对象文件(Object Code,也称目标文件), 其内容主要是从源文件编译得到的机器码,包含了代码、数据以及调试使用的信息;\n(2) 链接, 链接器 armlink 把各个 .o 文件及库文件链"
          },
          {
            "url": "/sdoc/basic/overview/126b08e6a7051c291c1151a6.html",
            "relativePath": "/sdoc/10-基础篇/01-概述/LV022-CortexM0存储器映射.html",
            "frontmatter": {
              "title": "LV022-CortexM0存储器映射",
              "date": "2025-09-20 13:44:05",
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/basic/overview/126b08e6a7051c291c1151a6",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "91c1151a6b3c4a07b26e0383912b8543",
                "useduuid": "91c1151a6"
              }
            },
            "author": {
              "name": "苏木",
              "link": "https://github.com/docs-site"
            },
            "title": "LV022-CortexM0存储器映射",
            "date": "2025-09-20 13:44:05",
            "excerpt": "",
            "capture": "一、存储器映射\n后面学习STM32的存储器映射的时候,有用到过M0架构的STM32F05x系列芯片,部分笔记记录在这里:\n&lt;img src=\"./LV022-CortexM0存储器映射/img/image-20230409205001077.png\" alt=\"image-20230409205001077\" style=\"zoom:33%;\" /\n被控单元的FLASH,RAM和AHB到APB的桥(即片上外设),这些功能部件共同排列在一个 4GB 的地址空间内。我们在编程的时候,可以通过他们的地址找到他们,然后来操作他们。存储器本身没有地址,给存储器分配地址的过程叫存储器映射。\n&lt;"
          },
          {
            "url": "/sdoc/basic/stm32basic/126b08e6a53918eab18839bd.html",
            "relativePath": "/sdoc/10-基础篇/10-STM32基础/LV050-STM32地址重映射.html",
            "frontmatter": {
              "title": "LV050-STM32地址重映射",
              "date": "2025-09-20 13:39:45",
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/basic/stm32basic/126b08e6a53918eab18839bd",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "ab18839bd52b440b9ca51fa34ea3d714",
                "useduuid": "ab18839bd"
              }
            },
            "author": {
              "name": "苏木",
              "link": "https://github.com/docs-site"
            },
            "title": "LV050-STM32地址重映射",
            "date": "2025-09-20 13:39:45",
            "excerpt": "",
            "capture": "一、地址重映射\n这一部分还是以STM42F429为例。F429的中文手册可以看这里:RM0090_STM32F40xxx、STM32F41xxx、STM32F42xxx、STM32F43xx参考手册\n 1. 自举的概念\n自举(bootstrap)计算机设备使用硬件加载的程序,用于初始化足够的软件来查找并加载功能完整的操作系统。也用来描述加载自举程序的过程。什么是单片机的自举?单片机的自举就是单片机的启动。\n我们说,单片机程序基本都是从0地址出开始运行的,F429的0x00000000\\~0x001FFFFF地址映射了到什么存储器上,那么就从该存储器上读取指令,开始运行。\n至于说0x000000"
          },
          {
            "url": "/sdoc/basic/stm32basic/126b08e6840f3457e72c8780.html",
            "relativePath": "/sdoc/10-基础篇/10-STM32基础/LV045-STM32存储器系统.html",
            "frontmatter": {
              "title": "LV045-STM32存储器系统",
              "date": "2025-09-20 12:54:55",
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/basic/stm32basic/126b08e6840f3457e72c8780",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "7e72c87803ee4322bcd1072590f70cb3",
                "useduuid": "7e72c8780"
              }
            },
            "author": {
              "name": "苏木",
              "link": "https://github.com/docs-site"
            },
            "title": "LV045-STM32存储器系统",
            "date": "2025-09-20 12:54:55",
            "excerpt": "",
            "capture": "一、基本概念\n 1. 寄存器\n 1.1 什么是寄存器?\n寄存器是计算机和微处理器内部的一种高速、小容量的存储单元,主要用于暂存指令、数据和地址。它是CPU或其他硬件组件直接操作的对象,访问速度远高于内存(RAM)。\n可以将其理解为 “工作台”:\n- CPU内核寄存器 是工程师(CPU)手边最顺手的工具,直接参与加工。\n- 外设寄存器 是工程师与外部机器(外设)进行控制和状态交互的控制面板。\n 1.2 寄存器分类\n寄存器根据其功能和位置,可以分为两个截然不同的层级。\n 1.2.1 CPU内核寄存器 (Core Registers)\n这类寄存器位于中央处理单元(CPU)内部,是CPU核心的一部分。"
          },
          {
            "url": "/sdoc/basic/stm32basic/126b08e6831f0a0031c3f015.html",
            "relativePath": "/sdoc/10-基础篇/10-STM32基础/LV040-STM32系统架构.html",
            "frontmatter": {
              "title": "LV040-STM32系统架构",
              "date": "2025-09-20 12:52:15",
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/basic/stm32basic/126b08e6831f0a0031c3f015",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "031c3f0159bd41bfa7f2e89f6b50e340",
                "useduuid": "031c3f015"
              }
            },
            "author": {
              "name": "苏木",
              "link": "https://github.com/docs-site"
            },
            "title": "LV040-STM32系统架构",
            "date": "2025-09-20 12:52:15",
            "excerpt": "",
            "capture": "一、STM32简介\n 1. 回顾\n2007 年 6 月, ST 在北京发布了全球第一款基于 ARM Cortex M3 内核的 32 位通用微控制器芯片: STM32F103,以优异的性能,丰富的资源,超高的性价比,迅速占领市场,从此一鸣惊人,一发不可收拾,截止到 2020 年 6 月, STM32 累计出货量超过 45 亿颗。  \n后面学习的STM32就是用的下图中的STM32F103ZET6:\n&lt;img src=\"./LV040-STM32系统架构/img/image-20250920125818906.png\" alt=\"image-20250920125818906\" style"
          },
          {
            "url": "/sdoc/basic/stm32basic/126b08e608d01035e7260fce.html",
            "relativePath": "/sdoc/10-基础篇/10-STM32基础/LV021-认识HAL库.html",
            "frontmatter": {
              "title": "LV021-认识HAL库",
              "date": "2025-09-20 09:39:04",
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/basic/stm32basic/126b08e608d01035e7260fce",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "5e7260fce3184ab293e2a218bc58687b",
                "useduuid": "5e7260fce"
              }
            },
            "author": {
              "name": "苏木",
              "link": "https://github.com/docs-site"
            },
            "title": "LV021-认识HAL库",
            "date": "2025-09-20 09:39:04",
            "excerpt": "<p>HAL,英文全称 Hardware Abstraction Layer,即硬件抽象层。 HAL 库是 ST 公司提供的外设驱动代码的驱动库,用户只需要调用库的 API 函数,便可间接配置寄存器。我们要写程序控制 STM32 芯片,其实最终就是控制它的寄存器,使之工作在我们需要的模式下, HAL 库将大部分寄存器的操作封装成了函数,我们只需要学习和掌握 HAL 库函数的结构和用法,就能方便地驱动 STM32 工作, 以节省开发时间。</p>\n<blockquote>\n<p>主要是ST官网主推的现在就是这个HAL库,而且STM32CubeMX软件生成工程也是用的这个,所以还是有必要学习一下。</p>\n</blockquote>\n",
            "capture": "HAL,英文全称 Hardware Abstraction Layer,即硬件抽象层。 HAL 库是 ST 公司提供的外设驱动代码的驱动库,用户只需要调用库的 API 函数,便可间接配置寄存器。我们要写程序控制 STM32 芯片,其实最终就是控制它的寄存器,使之工作在我们需要的模式下, HAL 库将大部分寄存器的操作封装成了函数,我们只需要学习和掌握 HAL 库函数的结构和用法,就能方便地驱动 STM32 工作, 以节省开发时间。  \n\n 一、HAL库驱动包\n 1. 下载STM32CubeF1固件\n直接来这里下载:STM32CubeF1 | Product - 意法半导体STMicroelec"
          },
          {
            "url": "/sdoc/basic/stm32basic/126b08e603011c2e21862cc6.html",
            "relativePath": "/sdoc/10-基础篇/10-STM32基础/LV020-STM32怎么开发.html",
            "frontmatter": {
              "title": "LV020-STM32怎么开发",
              "date": "2025-09-20 09:24:17",
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/basic/stm32basic/126b08e603011c2e21862cc6",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "e21862cc6b54423c827258b8732bcdd8",
                "useduuid": "e21862cc6"
              }
            },
            "author": {
              "name": "苏木",
              "link": "https://github.com/docs-site"
            },
            "title": "LV020-STM32怎么开发",
            "date": "2025-09-20 09:24:17",
            "excerpt": "",
            "capture": "一、开发方式\n这篇笔记是已经对STM32有了一定的了解后才写的,其实STM32的开发大概有四种方式\n- (1)汇编,强的一批,我们可以直接使用内部寄存器和STM32的寄存器来使用汇编开发,难度可想而知。\n- (2)C语言+寄存器开发,这种相对容易,毕竟C语言我们都学过,无非是寄存器超级多。\n- (3)C语言+标准库,这个是我入门STM32的时候最先使用的库,一般都用这个。\n- (4)C语言+HAL库,HAL库配合STM32CubeMX软件使用,由于图形化的配置界面,这个HAL库据说是ST以后主推的库。\n 二、库开发与寄存器开发的关系  \n一般我们都是从学 51 单片机开发转而学习 STM32 "
          },
          {
            "url": "/sdoc/basic/stm32basic/126b08e600543a33cc0a657a.html",
            "relativePath": "/sdoc/10-基础篇/10-STM32基础/LV010-嵌入式C语言.html",
            "frontmatter": {
              "title": "LV010-嵌入式C语言",
              "date": "2025-09-20 09:17:32",
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/basic/stm32basic/126b08e600543a33cc0a657a",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "3cc0a657a05d403785cc85fa30a99505",
                "useduuid": "3cc0a657a"
              }
            },
            "author": {
              "name": "苏木",
              "link": "https://github.com/docs-site"
            },
            "title": "LV010-嵌入式C语言",
            "date": "2025-09-20 09:17:32",
            "excerpt": "",
            "capture": "其实之前就学习过C预言了,语法什么的在嵌入式中都是一模一样的,就是有些数据类型还有相关操作可以再熟悉一下。\n 一、STM32支持的数据类型\n以STM32F103ZE这一款芯片为例,这是一块32bit的MCU,基本数据类型在此款芯片中的数据长度,以及在HAL库函数中的定义( stdint.h文件中的定义,采用C99标准)如下图:\n&lt;img src=\"./LV010-嵌入式C语言/img/image-20230418221356751.png\" alt=\"image-20230418221356751\" style=\"zoom: 80%;\" /\n 建议在开发过程中使用库定义的数据类型, 来定"
          },
          {
            "url": "/sdoc/basic/stm32basic/126b08e5feaa2043ad05a48e.html",
            "relativePath": "/sdoc/10-基础篇/10-STM32基础/LV001-STM32概述.html",
            "frontmatter": {
              "title": "LV001-STM32概述",
              "date": "2025-09-20 09:13:06",
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/basic/stm32basic/126b08e5feaa2043ad05a48e",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "3ad05a48eac840679287e1b2301b039a",
                "useduuid": "3ad05a48e"
              }
            },
            "author": {
              "name": "苏木",
              "link": "https://github.com/docs-site"
            },
            "title": "LV001-STM32概述",
            "date": "2025-09-20 09:13:06",
            "excerpt": "",
            "capture": "一、STM32简介\n 1. STM32与ARM\n在2004年, ARM公司推出新一代Cortex内核后, ST公司抓住机遇,在很短的时间内就向市场推出了一系列的32位微控制器, 同时提供基于库的开发模式,加快用户研发周期。 STM32就是ST公司基于ARM Cortex-M系列内核设计的微控制器,专为高性能、低功耗、低成本场景设计。  \nSTM32如今产品系列非常丰富, 主要为ARM Cortex-M内核系列MCU,也开始涉及ARM Cortex-A内核\n系列MPU,如下图所示。 \n&lt;img src=\"./LV001-STM32概述/img/image-20230417223005421"
          },
          {
            "url": "/sdoc/basic/overview/126b08e5fb5429a0009ffc8b.html",
            "relativePath": "/sdoc/10-基础篇/01-概述/LV045-CortexM3的NVIC中断控制.html",
            "frontmatter": {
              "title": "LV040-CortexM3的NVIC中断控制",
              "date": "2025-09-20 09:04:52",
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/basic/overview/126b08e5fb5429a0009ffc8b",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "0009ffc8b07a4e459a29f0ba0518592b",
                "useduuid": "0009ffc8b"
              }
            },
            "author": {
              "name": "苏木",
              "link": "https://github.com/docs-site"
            },
            "title": "LV040-CortexM3的NVIC中断控制",
            "date": "2025-09-20 09:04:52",
            "excerpt": "",
            "capture": "一、NVIC简介\nCortex-M3内核有一个专门管理中断的外设NVIC( Nested Vectored Interrupt Controller,嵌套向量中断控制器) , 通过优先级控制中断的嵌套和调度。NVIC是一个总的中断控制器, 无论是来在内核的异常还是外设的外部中断, 都由NVIC统一进行管理。 是 Cortex‐M3 不可分离的一部分, 它与 CM3 内核的逻辑紧密耦合, 有一部分甚至水乳交融在一起。 \nNVIC 与 CM3 内核同声相应,同气相求,相辅相成,里应外合,共同完成对中断的响应。 NVIC作为在内核里的外设,NVIC 的寄存器以存储器映射的方式来访问, 除了包含控制寄"
          },
          {
            "url": "/sdoc/basic/overview/126b08e5d7b911b28ed9ee4c.html",
            "relativePath": "/sdoc/10-基础篇/01-概述/LV040-CortexM3异常.html",
            "frontmatter": {
              "title": "LV040-CortexM3异常",
              "date": "2025-09-20 08:13:37",
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/basic/overview/126b08e5d7b911b28ed9ee4c",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "28ed9ee4c4ee4374a05b403be9d08519",
                "useduuid": "28ed9ee4c"
              }
            },
            "author": {
              "name": "苏木",
              "link": "https://github.com/docs-site"
            },
            "title": "LV040-CortexM3异常",
            "date": "2025-09-20 08:13:37",
            "excerpt": "",
            "capture": "一、常见缩略语含义\n| 缩写 | 说明                               |\n| ---- | ---------------------------------- |\n| IRQ  | 中断请求(通常是指外部中断的请求) |\n| ISR  | 中断服务例程                       |\n| NMI  | 不可屏蔽中断                       |\n| NVIC | 嵌套向量中断控制器                 |\n| PSP  | 进程堆栈指针                       |\n 二、异常\n 1. 什么是异常?"
          },
          {
            "url": "/sdoc/basic/overview/126b08c73d361161792b640a.html",
            "relativePath": "/sdoc/10-基础篇/01-概述/LV035-CortexM3存储器系统.html",
            "frontmatter": {
              "title": "LV035-CortexM3存储器系统",
              "date": "2025-09-18 07:57:02",
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/basic/overview/126b08c73d361161792b640a",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "1792b640ad2b40c1a34cc0ea4da24ed9",
                "useduuid": "1792b640a"
              }
            },
            "author": {
              "name": "苏木",
              "link": "https://github.com/docs-site"
            },
            "title": "LV035-CortexM3存储器系统",
            "date": "2025-09-18 07:57:02",
            "excerpt": "",
            "capture": "本篇笔记主要来自于《Cortex-M3 权威指南》的第五章存储器系统。其实有一部分概念在后边一篇笔记中才有所体现,比如什么是寄存器?。\n 一、存储器映射\nCM3 只有一个单一固定的存储器映射。这一点极大地方便了软件在各种 CM3 单片机间的移植。举个简单的例子,各款 CM3 单片机的 NVIC 和 MPU 都在相同的位置布设寄存器,使得它们变得通用。尽管如此, CM3 定出的条条框框是粗线条的,它依然允许芯片制造商灵活地分配存储器空间,以制造出各具特色的单片机产品。存储空间的一些位置用于调试组件等私有外设,这个地址段被称为“ 私有外设区”。私有外设区的组件包括:  \n(1)闪存地址重载及断点单"
          },
          {
            "url": "/sdoc/basic/overview/126b08c73a222946645cba90.html",
            "relativePath": "/sdoc/10-基础篇/01-概述/LV030-CortexM3简介.html",
            "frontmatter": {
              "title": "LV030-CortexM3简介",
              "date": "2025-09-18 07:49:14",
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/basic/overview/126b08c73a222946645cba90",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "6645cba90f414432ac823c9d1938fc37",
                "useduuid": "6645cba90"
              }
            },
            "author": {
              "name": "苏木",
              "link": "https://github.com/docs-site"
            },
            "title": "LV030-CortexM3简介",
            "date": "2025-09-18 07:49:14",
            "excerpt": "",
            "capture": "一、概述\nARM(Advanced RISC Machine)是一个32位精简指令集(RISC)处理器架构,应用于许多嵌入式系统设计中。其中,自从ARMv7系列架构开始,ARM公司推出了Cortex系列,并根据不同的应用场景推出了Cortex-M,Cortex-A和Cortex-R三款不同方向的产品。\nARM代表了一种芯片标准,体现了芯片的架构设计,而具体涉及到存储器容量,片上外设,IO引脚数等实现,则是由不同的芯片厂商进行设计的。\n 二、内核与芯片\nARM公司提供内核(如Cortex M3,简称CM3,下同)授权,完整的MCU还需要很多其他组件。芯片公司(ST、 NXP、 TI、 GD、华大"
          },
          {
            "url": "/sdoc/basic/overview/126b08c738bc16b5b982661d.html",
            "relativePath": "/sdoc/10-基础篇/01-概述/LV020-CortexM0简介.html",
            "frontmatter": {
              "title": "LV020-CortexM0简介",
              "date": "2025-09-18 07:45:56",
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/basic/overview/126b08c738bc16b5b982661d",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "5b982661dbf54e3db91954b53e220c58",
                "useduuid": "5b982661d"
              }
            },
            "author": {
              "name": "苏木",
              "link": "https://github.com/docs-site"
            },
            "title": "LV020-CortexM0简介",
            "date": "2025-09-18 07:45:56",
            "excerpt": "",
            "capture": "课程中使用的是STM32F0系列的芯片,用的是Cortex-M0的内核,所以这里的笔记是关于Cortex-M0的,对于我后来使用Cortex-M3内核大体上的的知识是基本通用的。\n 一、Cortex-M0处理器简介\n 1. Cortex-M 系列产品\nCortex-M 系列产品主要包括 Cortex-M0、Cortex-M1、Cortex-M3、Cortex-M4、Cortex-M7 等,其中 Cortex-M0 主打低功耗和混合信号的处理,M3 主要用来替代 ARM7,重点侧重能耗与性能的平衡,而 M7 则重点放在高性能控制运算领域。\n&lt;img src=\"./LV020-CortexM"
          },
          {
            "url": "/sdoc/basic/overview/126b08ba13b3329986816cf4.html",
            "relativePath": "/sdoc/10-基础篇/01-概述/LV010-常见存储器.html",
            "frontmatter": {
              "title": "LV010-常见存储器",
              "date": "2025-09-17 21:31:07",
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/basic/overview/126b08ba13b3329986816cf4",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "986816cf43ae496ea97f2ac2344cf4bc",
                "useduuid": "986816cf4"
              }
            },
            "author": {
              "name": "苏木",
              "link": "https://github.com/docs-site"
            },
            "title": "LV010-常见存储器",
            "date": "2025-09-17 21:31:07",
            "excerpt": "",
            "capture": "一、单片机中的FLASH和SRAM\n我们在进行STM32芯片选型的时候,会看到这样的参数,可以看STM32F103选型页面:\n&lt;img src=\"./LV010-常见存储器/img/image-20230504212342232.png\" alt=\"image-20230504212342232\" style=\"zoom:50%;\" /\n比如这里,我们使用的STM32F103ZE系列芯片,有512KB的Flash和64KB的SRAM,这是什么意思呢?\n在STM32中 SRAM 及 FLASH 是作为内存和程序存储空间的。我们平时使用电脑,会考虑内存大小,有4GB、8GB、16GB等,也会"
          },
          {
            "url": "/sdoc/basic/overview/126b08ba0eae364f31526d00.html",
            "relativePath": "/sdoc/10-基础篇/01-概述/LV001-ARM体系结构.html",
            "frontmatter": {
              "title": "LV001-ARM体系结构",
              "date": "2025-09-17 21:18:22",
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/basic/overview/126b08ba0eae364f31526d00",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "f31526d004e841cf942bb1c43e30f261",
                "useduuid": "f31526d00"
              }
            },
            "author": {
              "name": "苏木",
              "link": "https://github.com/docs-site"
            },
            "title": "LV001-ARM体系结构",
            "date": "2025-09-17 21:18:22",
            "excerpt": "",
            "capture": "一、 ARM简介\n 1. 为什么要学习ARM?\n在我们的生活中,STM32的应用得很广泛,像下边这些产品,可能都会用到STM32:\n&lt;img src=\"./LV001-ARM体系结构/img/image-20230408170339636.png\" alt=\"image-20230408170339636\" style=\"zoom:33%;\" /\n而STM32是一个微处理器,也就是MCU,它的结构一般如下:\n&lt;img src=\"./LV001-ARM体系结构/img/image-20230408170245470.png\" alt=\"image-20230408170245470\""
          },
          {
            "url": "/sdoc/dev-tool/burn-and-debug/126b08b9cea618afd74b243b.html",
            "relativePath": "/sdoc/01-开发工具/10-下载与调试/LV030-串口下载.html",
            "frontmatter": {
              "title": "LV030-串口下载",
              "date": "2025-09-17 19:54:30",
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/dev-tool/burn-and-debug/126b08b9cea618afd74b243b",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "fd74b243b22149fe9c55a56a7b50b6d5",
                "useduuid": "fd74b243b"
              }
            },
            "author": {
              "name": "苏木",
              "link": "https://github.com/docs-site"
            },
            "title": "LV030-串口下载",
            "date": "2025-09-17 19:54:30",
            "excerpt": "<p>单片机开可以用串口下载程序,这部分来了解一下。</p>\n",
            "capture": "单片机开可以用串口下载程序,这部分来了解一下。\n 一、CH340驱动\n 1. CH340简介\n一般来说我们通过电脑连接到开发板的串口是用的RS232:\n&lt;img src=\"./LV030-串口下载/img/image-20220918134419265.png\" alt=\"image-20220918134419265\" style=\"zoom: 50%;\" /\n而RS-232 电平需要 DB9 接口 (也就是常说的 COM口)。现在的电脑很多都没有 DB9 接口了,取而代之的是 USB 接口,所以就催生出了很多 USB 转串口 TTL 芯片,比如 CH340、PL2303 等。通过这些"
          },
          {
            "url": "/sdoc/dev-tool/burn-and-debug/126b08b9cb90276fafba387f.html",
            "relativePath": "/sdoc/01-开发工具/10-下载与调试/LV020-ST-LINK-Utility简介.html",
            "frontmatter": {
              "title": "LV020-ST-LINK-Utility简介",
              "date": "2025-09-17 19:46:40",
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/dev-tool/burn-and-debug/126b08b9cb90276fafba387f",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "fafba387f5f84aab849e4d8b464e22ad",
                "useduuid": "fafba387f"
              }
            },
            "author": {
              "name": "苏木",
              "link": "https://github.com/docs-site"
            },
            "title": "LV020-ST-LINK-Utility简介",
            "date": "2025-09-17 19:46:40",
            "excerpt": "",
            "capture": "一、简介\n我们有源码的时候可以使用MDK编译,然后一键下载,那我们要是没有源码怎么办?用串口吗?当然可以,还有别的办法吗?有啊,下边我们就来了解一下吧。\nSTM32 ST-LINK Utility这个软件工具其实主要就是配套“ST-LINK”这个下载工具一起使用的上位机软件。因此使用STM32 ST-LINK Utility上位机软件需要有一个ST-LINK工具才行。它的功能和J-Link对应的工具类似,用于烧写代码。\nSTM32 ST-LINK Utility工具在产品开发过程中测试一些其他版本的代码,可以直接下载hex,而不用打开工程再编译去下载。 当开发完一个STM32产品,需要量产的时"
          },
          {
            "url": "/sdoc/dev-tool/burn-and-debug/126b08b9c98b11187c20e13a.html",
            "relativePath": "/sdoc/01-开发工具/10-下载与调试/LV015-STLink怎么使用.html",
            "frontmatter": {
              "title": "LV015-STLink怎么使用",
              "date": "2025-09-17 19:41:23",
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/dev-tool/burn-and-debug/126b08b9c98b11187c20e13a",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "87c20e13a48a44dfb380f22a1b102e34",
                "useduuid": "87c20e13a"
              }
            },
            "author": {
              "name": "苏木",
              "link": "https://github.com/docs-site"
            },
            "title": "LV015-STLink怎么使用",
            "date": "2025-09-17 19:41:23",
            "excerpt": "",
            "capture": "我这有一款ST-Link,这个是10脚的,引脚图直接画在正面了,如下图所示,按照排线的孔插入对应底座就可以啦。\n&lt;img src=\"./LV015-STLink怎么使用/img/image-20230422161832141.png\" alt=\"image-20230422161832141\" style=\"zoom: 50%;\" /\n 一、驱动安装\n 1. 驱动下载\n我们到官网去下载一个:STSW-LINK009 - 为Windows 7、Windows 8、Windows 10签署的ST-LINK、ST-LINK/V2、ST-LINK/V2-1 USB驱动 - 意法半导体STMicr"
          },
          {
            "url": "/sdoc/dev-tool/burn-and-debug/126b08b7f6ce25a6c770f3b5.html",
            "relativePath": "/sdoc/01-开发工具/10-下载与调试/LV010-JFlash简介.html",
            "frontmatter": {
              "title": "LV010-JFlash简介",
              "date": "2025-09-17 07:46:38",
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/dev-tool/burn-and-debug/126b08b7f6ce25a6c770f3b5",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "6c770f3b50d84d7fad7f77bc05f872fc",
                "useduuid": "6c770f3b5"
              }
            },
            "author": {
              "name": "苏木",
              "link": "https://github.com/docs-site"
            },
            "title": "LV010-JFlash简介",
            "date": "2025-09-17 07:46:38",
            "excerpt": "",
            "capture": "一、JFlash简介\n我们有源码的时候可以使用MDK编译,然后一键下载,那我们要是没有源码怎么办?用串口吗?当然可以,还有别的办法吗?有啊,下边我们就来了解一下吧。\nJ-Flash 是单独的Flash ISP烧写软件,是一种独立Flash编程软件了,可以把单独的bin文件或者hex文件烧写到单片机的flash里面去。它是在安装 J-Link 驱动时自带的一款Flash ISP软件,支持bin格式、hex格式、srec格式(Motorola的)。\n 二、安装jFlash\n这个软件一般是随着J-Link驱动安装一起自动安装的,所以在我们安装好J-Link驱动的时候,这个软件就已经被安装好了,没有必"
          },
          {
            "url": "/sdoc/dev-tool/burn-and-debug/126b08ab16fa3e011692369d.html",
            "relativePath": "/sdoc/01-开发工具/10-下载与调试/LV001-下载与调试概述.html",
            "frontmatter": {
              "title": "LV001-下载与调试概述",
              "date": "2025-09-16 23:09:06",
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/dev-tool/burn-and-debug/126b08ab16fa3e011692369d",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "11692369dc744332bc6f2569dd8ec58a",
                "useduuid": "11692369d"
              }
            },
            "author": {
              "name": "苏木",
              "link": "https://github.com/docs-site"
            },
            "title": "LV001-下载与调试概述",
            "date": "2025-09-16 23:09:06",
            "excerpt": "",
            "capture": "一、概述\nSTM32 常见的下载方式有三种:  \n| 下载方式 | 使用接口                 | 下载条件                                             | 优缺点                                                       |\n| -------------------------------------------------------- | ------------------------ | --------------------------------------------"
          },
          {
            "url": "/sdoc/dev-tool/burn-and-debug/126b08ab15ee0921c4f7fd64.html",
            "relativePath": "/sdoc/01-开发工具/10-下载与调试/LV002-JLink怎么使用.html",
            "frontmatter": {
              "title": "LV002-JLink怎么使用",
              "date": "2025-09-16 23:06:38",
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/dev-tool/burn-and-debug/126b08ab15ee0921c4f7fd64",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "1c4f7fd64909407cb589ad3348a0c376",
                "useduuid": "1c4f7fd64"
              }
            },
            "author": {
              "name": "苏木",
              "link": "https://github.com/docs-site"
            },
            "title": "LV002-JLink怎么使用",
            "date": "2025-09-16 23:06:38",
            "excerpt": "",
            "capture": "一、驱动安装\n 1. 在哪里下载?\n我们到官网去下载一个:SEGGER - The Embedded Experts - Downloads - J-Link / J-Trace,可以选一个版本使用,我这里选的V7.86h,后我们可得到一个JLink_Windows_V786h_x86_64.exe可执行文件。\n&lt;img src=\"./LV002-JLink怎么使用/img/image-20230424172108179.png\" alt=\"image-20230424172108179\" style=\"zoom: 67%;\" /\n 2. 安装驱动\n这个由于我之前安装过,这里就不记录未安"
          },
          {
            "url": "/sdoc/dev-tool/stm32cube/126b08aaf7c11b6e19f8d60a.html",
            "relativePath": "/sdoc/01-开发工具/02-STM32Cube/LV002-STM32CubeMX工程创建.html",
            "frontmatter": {
              "title": "LV002-STM32CubeMX工程创建",
              "date": "2025-09-16 22:29:13",
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/dev-tool/stm32cube/126b08aaf7c11b6e19f8d60a",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "e19f8d60a0f64d51a22bc5a8a04bf26f",
                "useduuid": "e19f8d60a"
              }
            },
            "author": {
              "name": "苏木",
              "link": "https://github.com/docs-site"
            },
            "title": "LV002-STM32CubeMX工程创建",
            "date": "2025-09-16 22:29:13",
            "excerpt": "",
            "capture": "一、工程创建\n 1. 芯片型号选择\n这个创建工程就比较简单了:\n- 【File】&rarr;【New Project】\n&lt;img src=\"./LV002-STM32CubeMX工程创建/img/image-20230419232250397.png\" alt=\"image-20230419232250397\"  /\n- 【选择芯片型号】&rarr;【Start Project】\n&lt;img src=\"./LV002-STM32CubeMX工程创建/img/image-20230419232522160.png\" alt=\"image-20230419232522160\"  /&gt"
          },
          {
            "url": "/sdoc/dev-tool/keil/126b08aa5e32382c0ab32a01.html",
            "relativePath": "/sdoc/01-开发工具/01-keil/LV002-工程创建.html",
            "frontmatter": {
              "title": "LV002-工程创建",
              "date": "2025-09-16 18:36:02",
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/dev-tool/keil/126b08aa5e32382c0ab32a01",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "c0ab32a01a744756b6c0c3e4231ed9aa",
                "useduuid": "c0ab32a01"
              }
            },
            "author": {
              "name": "苏木",
              "link": "https://github.com/docs-site"
            },
            "title": "LV002-工程创建",
            "date": "2025-09-16 18:36:02",
            "excerpt": "<p>接下来就是工程创建啦。</p>\n",
            "capture": "接下来就是工程创建啦。\n 一、库文件\n在STM32的开发中,ST(意法半导体)提供了多种软件库来帮助开发者简化开发流程,提高开发效率。其中,标准外设库(Standard Peripheral Library, SPL) 和 硬件抽象层库(Hardware Abstraction Layer Library, HAL) 是最为经典和常用的两种。\n 1. 标准外设库 (Standard Peripheral Library, SPL)\n标准库,也称为SPL,是ST早期为STM32F1, F2, F4, L1等系列提供的库函数。它是对STM32芯片底层寄存器操作的一种封装,提供了一组C语言API用于"
          },
          {
            "url": "/sdoc/dev-tool/stm32cube/126b08aa58bc0838d250f7bd.html",
            "relativePath": "/sdoc/01-开发工具/02-STM32Cube/LV001-STM32CubeMX简介.html",
            "frontmatter": {
              "title": "LV001-STM32CubeMX简介",
              "date": "2025-09-16 18:22:04",
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/dev-tool/stm32cube/126b08aa58bc0838d250f7bd",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "8d250f7bdb9d4b4fb822b135635cdf20",
                "useduuid": "8d250f7bd"
              }
            },
            "author": {
              "name": "苏木",
              "link": "https://github.com/docs-site"
            },
            "title": "LV001-STM32CubeMX简介",
            "date": "2025-09-16 18:22:04",
            "excerpt": "",
            "capture": "一、STM32CubeMX\n 1. 简介\n&lt;img src=\"./LV001-STM32CubeMX简介/img/image-20230419230755825.png\" alt=\"image-20230419230755825\" style=\"zoom:50%;\" /\nSTM32CubeMX是ST公司出品的一款C代码生成器软件,它是一种图形工具,通过分步过程可以非常轻松地配置STM32微控制器和微处理器,以及为Arm® Cortex®-M内核或面向Arm® Cortex®-A内核的特定Linux®设备树生成相应的初始化C代码。具有以下功能:\n- 直观的STM32微控制器和微处理器选择\n"
          },
          {
            "url": "/sdoc/dev-tool/keil/126b08a8b79e2ecaa634dd81.html",
            "relativePath": "/sdoc/01-开发工具/01-keil/LV001-keil简介.html",
            "frontmatter": {
              "title": "LV001-keil简介",
              "date": "2025-09-16 07:54:22",
              "icon": "famicons:logo-markdown",
              "permalink": "/sdoc/dev-tool/keil/126b08a8b79e2ecaa634dd81",
              "index": true,
              "tags": null,
              "categories": null,
              "copyright": false,
              "keywords": null,
              "cover": null,
              "comments": null,
              "mathjax": null,
              "top": null,
              "description": null,
              "tdoc": {
                "detailDate": {},
                "fulluuid": "aa634dd813594b2686f1ae7b5b6911d4",
                "useduuid": "aa634dd81"
              }
            },
            "author": {
              "name": "苏木",
              "link": "https://github.com/docs-site"
            },
            "title": "LV001-keil简介",
            "date": "2025-09-16 07:54:22",
            "excerpt": "",
            "capture": "一、Keil简介\n 1. 简介\nMDK 源自德国的 KEIL 公司,是 RealView MDK 的简称。在全球 MDK 被超过 10 万的嵌入式开发工程师使用。是目前针对 ARM 处理器,尤其是 Cortex M 内核处理器的最佳开发工具。  \nKeil MDK面向各种STM32微控制器产品的全面软件开发解决方案,提供创建、编译和调试嵌入式应用程序时所需的一切资源。MDK包括真正的Arm编译器和易于使用的Keil uVision IDE/调试器,可与STM32CubeMX和软件包连接。MDK还提供各种专业的中间件组件。\nMDK5 向后兼容 MDK4 和 MDK3 等,以前的项目同样可以在 M"
          }
        ]
      }
    },
    "groupPosts": {
      "categories": {},
      "tags": {}
    },
    "groupCards": {
      "categories": [],
      "tags": []
    }
  },
  "sidebar": {
    "/sdoc/dev-tool/": [
      {
        "text": "01-keil",
        "collapsed": true,
        "items": [
          {
            "text": "LV001-keil简介",
            "collapsed": true,
            "link": "/sdoc/dev-tool/keil/126b08a8b79e2ecaa634dd81.md"
          },
          {
            "text": "LV002-工程创建",
            "collapsed": true,
            "link": "/sdoc/dev-tool/keil/126b08aa5e32382c0ab32a01.md"
          },
          {
            "text": "LV010-程序与编译",
            "collapsed": true,
            "link": "/sdoc/dev-tool/keil/126b08e6a9c4187125e57a5f.md"
          },
          {
            "text": "LV015-MDK工程文件简介",
            "collapsed": true,
            "link": "/sdoc/dev-tool/keil/126b0913857d3670d6f0eef1.md"
          },
          {
            "text": "LV016-Output目录文件",
            "collapsed": true,
            "link": "/sdoc/dev-tool/keil/126b091384f9220a0ff9cf1d.md"
          },
          {
            "text": "LV017-Listing目录文件",
            "collapsed": true,
            "link": "/sdoc/dev-tool/keil/126b0913865605b5493dc70e.md"
          },
          {
            "text": "LV020-SCT分散加载文件",
            "collapsed": true,
            "link": "/sdoc/dev-tool/keil/126b08e6cfb5032dbc05b46a.md"
          },
          {
            "text": "LV025-SCT文件应用",
            "collapsed": true,
            "link": "/sdoc/dev-tool/keil/126b08e6d335070a7fd1934d.md"
          },
          {
            "text": "LV040-在线调试",
            "collapsed": true,
            "link": "/sdoc/dev-tool/keil/126b08e76d70287e70afead6.md"
          }
        ]
      },
      {
        "text": "02-STM32Cube",
        "collapsed": true,
        "items": [
          {
            "text": "LV001-STM32CubeMX简介",
            "collapsed": true,
            "link": "/sdoc/dev-tool/stm32cube/126b08aa58bc0838d250f7bd.md"
          },
          {
            "text": "LV002-STM32CubeMX工程创建",
            "collapsed": true,
            "link": "/sdoc/dev-tool/stm32cube/126b08aaf7c11b6e19f8d60a.md"
          },
          {
            "text": "LV010-Makefile管理工程",
            "collapsed": true,
            "link": "/sdoc/dev-tool/stm32cube/126b08e6edcf211c7df7916d.md"
          },
          {
            "text": "LV012-Makefile文件分析",
            "collapsed": true,
            "link": "/sdoc/dev-tool/stm32cube/126b08e6ef7626b7c442bfe2.md"
          },
          {
            "text": "LV040-LD链接脚本",
            "collapsed": true,
            "link": "/sdoc/dev-tool/keil/126b08e6f2e40a653e71bc02.md"
          },
          {
            "text": "LV030-STM32CubeIDE",
            "collapsed": true,
            "link": "/sdoc/dev-tool/stm32cube/126b08e6f0211b46eabe9106.md"
          }
        ]
      },
      {
        "text": "10-下载与调试",
        "collapsed": true,
        "items": [
          {
            "text": "LV001-下载与调试概述",
            "collapsed": true,
            "link": "/sdoc/dev-tool/burn-and-debug/126b08ab16fa3e011692369d.md"
          },
          {
            "text": "LV002-JLink怎么使用",
            "collapsed": true,
            "link": "/sdoc/dev-tool/burn-and-debug/126b08ab15ee0921c4f7fd64.md"
          },
          {
            "text": "LV010-JFlash简介",
            "collapsed": true,
            "link": "/sdoc/dev-tool/burn-and-debug/126b08b7f6ce25a6c770f3b5.md"
          },
          {
            "text": "LV015-STLink怎么使用",
            "collapsed": true,
            "link": "/sdoc/dev-tool/burn-and-debug/126b08b9c98b11187c20e13a.md"
          },
          {
            "text": "LV020-ST-LINK-Utility简介",
            "collapsed": true,
            "link": "/sdoc/dev-tool/burn-and-debug/126b08b9cb90276fafba387f.md"
          },
          {
            "text": "LV030-串口下载",
            "collapsed": true,
            "link": "/sdoc/dev-tool/burn-and-debug/126b08b9cea618afd74b243b.md"
          }
        ]
      }
    ],
    "/sdoc/basic/": [
      {
        "text": "01-概述",
        "collapsed": true,
        "items": [
          {
            "text": "LV001-ARM体系结构",
            "collapsed": true,
            "link": "/sdoc/basic/overview/126b08ba0eae364f31526d00.md"
          },
          {
            "text": "LV010-常见存储器",
            "collapsed": true,
            "link": "/sdoc/basic/overview/126b08ba13b3329986816cf4.md"
          },
          {
            "text": "LV020-CortexM0简介",
            "collapsed": true,
            "link": "/sdoc/basic/overview/126b08c738bc16b5b982661d.md"
          },
          {
            "text": "LV022-CortexM0存储器映射",
            "collapsed": true,
            "link": "/sdoc/basic/overview/126b08e6a7051c291c1151a6.md"
          },
          {
            "text": "LV030-CortexM3简介",
            "collapsed": true,
            "link": "/sdoc/basic/overview/126b08c73a222946645cba90.md"
          },
          {
            "text": "LV035-CortexM3存储器系统",
            "collapsed": true,
            "link": "/sdoc/basic/overview/126b08c73d361161792b640a.md"
          },
          {
            "text": "LV040-CortexM3异常",
            "collapsed": true,
            "link": "/sdoc/basic/overview/126b08e5d7b911b28ed9ee4c.md"
          },
          {
            "text": "LV040-CortexM3的NVIC中断控制",
            "collapsed": true,
            "link": "/sdoc/basic/overview/126b08e5fb5429a0009ffc8b.md"
          }
        ]
      },
      {
        "text": "10-STM32基础",
        "collapsed": true,
        "items": [
          {
            "text": "LV001-STM32概述",
            "collapsed": true,
            "link": "/sdoc/basic/stm32basic/126b08e5feaa2043ad05a48e.md"
          },
          {
            "text": "LV010-嵌入式C语言",
            "collapsed": true,
            "link": "/sdoc/basic/stm32basic/126b08e600543a33cc0a657a.md"
          },
          {
            "text": "LV020-STM32怎么开发",
            "collapsed": true,
            "link": "/sdoc/basic/stm32basic/126b08e603011c2e21862cc6.md"
          },
          {
            "text": "LV021-认识HAL库",
            "collapsed": true,
            "link": "/sdoc/basic/stm32basic/126b08e608d01035e7260fce.md"
          },
          {
            "text": "LV030-STM32程序下载",
            "collapsed": true,
            "link": "/sdoc/basic/stm32basic/126b08e7828f108bc0b2f2dc.md"
          },
          {
            "text": "LV040-STM32系统架构",
            "collapsed": true,
            "link": "/sdoc/basic/stm32basic/126b08e6831f0a0031c3f015.md"
          },
          {
            "text": "LV045-STM32存储器系统",
            "collapsed": true,
            "link": "/sdoc/basic/stm32basic/126b08e6840f3457e72c8780.md"
          },
          {
            "text": "LV050-STM32地址重映射",
            "collapsed": true,
            "link": "/sdoc/basic/stm32basic/126b08e6a53918eab18839bd.md"
          }
        ]
      },
      {
        "text": "20-STM32的启动",
        "collapsed": true,
        "items": [
          {
            "text": "LV001-启动文件",
            "collapsed": true,
            "link": "/sdoc/basic/stm32setup/126b08e788e83383285742cb.md"
          },
          {
            "text": "LV005-启动过程",
            "collapsed": true,
            "link": "/sdoc/basic/stm32setup/126b08e78de70b59cd9ba362.md"
          },
          {
            "text": "LV010-在内部SRAM调试",
            "collapsed": true,
            "link": "/sdoc/basic/stm32setup/126b08e7afad049a561ccf1b.md"
          }
        ]
      },
      {
        "text": "30-STM32的中断",
        "collapsed": true,
        "items": [
          {
            "text": "LV001-STM32中断简介",
            "collapsed": true,
            "link": "/sdoc/basic/stm32interrupt/126b08f57241322fa604782d.md"
          }
        ]
      },
      {
        "text": "40-STM32时钟",
        "collapsed": true,
        "items": [
          {
            "text": "LV001-STM32F1时钟系统",
            "collapsed": true,
            "link": "/sdoc/basic/stm32clock/126b08f5d89727a6ee395582.md"
          },
          {
            "text": "LV010-STM32F1的SYSCLK",
            "collapsed": true,
            "link": "/sdoc/basic/stm32clock/126b08f5dcd1392ef8558043.md"
          }
        ]
      },
      {
        "text": "50-STM32内部FLASH",
        "collapsed": true,
        "items": [
          {
            "text": "LV001-内部FLASH简介",
            "collapsed": true,
            "link": "/sdoc/basic/stm32flash/126b09345207167f3ed95339.md"
          },
          {
            "text": "LV010-FLASH操作流程",
            "collapsed": true,
            "link": "/sdoc/basic/stm32flash/126b0934555e1e98aa9081c5.md"
          },
          {
            "text": "LV020-IAP编程简介",
            "collapsed": true,
            "link": "/sdoc/basic/stm32flash/126b0e26745a3124f27972bd.md"
          },
          {
            "text": "LV025-IAP编程实现",
            "collapsed": true,
            "link": "/sdoc/basic/stm32flash/126b0e4540061175c7584cc2.md"
          }
        ]
      },
      {
        "text": "60-STM32的内存",
        "collapsed": true,
        "items": [
          {
            "text": "LV001-STM32内存简介",
            "collapsed": true,
            "link": "/sdoc/basic/stm32memory/126b0941431c016e4bdd2a68.md"
          },
          {
            "text": "LV010-内存管理",
            "collapsed": true,
            "link": "/sdoc/basic/stm32memory/126b0e24d5e326e3a7296e85.md"
          }
        ]
      },
      {
        "text": "70-STM32电源管理",
        "collapsed": true,
        "items": [
          {
            "text": "LV001-电源管理简介",
            "collapsed": true,
            "link": "/sdoc/basic/stm32pwr/126b09513f17393c50358806.md"
          },
          {
            "text": "LV010-三种模式实现",
            "collapsed": true,
            "link": "/sdoc/basic/stm32pwr/126b095140443bc89b1ebe84.md"
          }
        ]
      }
    ],
    "/sdoc/peripheral/": [
      {
        "text": "01-GPIO",
        "collapsed": true,
        "items": [
          {
            "text": "LV001-STM32的GPIO简介",
            "collapsed": true,
            "link": "/sdoc/peripheral/gpio/126b08e802d21f6e4f658296.md"
          },
          {
            "text": "LV010-输入输出模式详解",
            "collapsed": true,
            "link": "/sdoc/peripheral/gpio/126b08e804d303ad5b541ecd.md"
          },
          {
            "text": "LV020-GPIO控制LED",
            "collapsed": true,
            "link": "/sdoc/peripheral/gpio/126b08e805ca1e15c40474c4.md"
          },
          {
            "text": "LV030-按键检测",
            "collapsed": true,
            "link": "/sdoc/peripheral/gpio/126b08e8078f1f2b7ad1d6a6.md"
          },
          {
            "text": "LV040-外部中断",
            "collapsed": true,
            "link": "/sdoc/peripheral/gpio/126b08f58a5c2c09e1d6100f.md"
          },
          {
            "text": "LV045-外部中断实例",
            "collapsed": true,
            "link": "/sdoc/peripheral/gpio/126b08f596281cc89a3bc4c6.md"
          }
        ]
      },
      {
        "text": "10-UART",
        "collapsed": true,
        "items": [
          {
            "text": "LV001-串口通信简介",
            "collapsed": true,
            "link": "/sdoc/peripheral/uart/126b08f60edb3b6ac7962cbf.md"
          },
          {
            "text": "LV010-STM32的串口",
            "collapsed": true,
            "link": "/sdoc/peripheral/uart/126b08f6146d2d238b102738.md"
          },
          {
            "text": "LV020-串口收发实例",
            "collapsed": true,
            "link": "/sdoc/peripheral/uart/126b08f61664097f4a0617fc.md"
          }
        ]
      },
      {
        "text": "15-定时器",
        "collapsed": true,
        "items": [
          {
            "text": "LV001-基本定时器简介",
            "collapsed": true,
            "link": "/sdoc/peripheral/timer/basic/126b08f6a8e32e3427f3a2b2.md"
          },
          {
            "text": "LV030-通用定时器简介",
            "collapsed": true,
            "link": "/sdoc/peripheral/timer/126b08f6aa441b536809798e.md"
          },
          {
            "text": "LV035-通用定时器的中断",
            "collapsed": true,
            "link": "/sdoc/peripheral/timer/126b08f6aa9f293ebbce26b2.md"
          },
          {
            "text": "LV040-通用定时器PWM输出",
            "collapsed": true,
            "link": "/sdoc/peripheral/timer/126b08f6aac20ab7bc66d777.md"
          },
          {
            "text": "LV045-通用定时器输入捕获",
            "collapsed": true,
            "link": "/sdoc/peripheral/timer/126b08f6ab6404f5fdfb5648.md"
          },
          {
            "text": "LV050-通用定时器脉冲计数",
            "collapsed": true,
            "link": "/sdoc/peripheral/timer/126b08f6ab873bc74e57e381.md"
          },
          {
            "text": "LV070-高级定时器简介",
            "collapsed": true,
            "link": "/sdoc/peripheral/timer/126b08f6abf821065c6674f2.md"
          },
          {
            "text": "LV075-高级定时器PWM输出",
            "collapsed": true,
            "link": "/sdoc/peripheral/timer/126b08f6ac4f2bb02b42403e.md"
          },
          {
            "text": "LV080-高级定时器输出比较模式",
            "collapsed": true,
            "link": "/sdoc/peripheral/timer/126b08f6aca0253099c9ba29.md"
          },
          {
            "text": "LV085-高级定时器互补输出",
            "collapsed": true,
            "link": "/sdoc/peripheral/timer/126b08f6ad8f2e0487d6c438.md"
          },
          {
            "text": "LV090-高级定时器PWM输入",
            "collapsed": true,
            "link": "/sdoc/peripheral/timer/126b08f6ae2512a51a9eec42.md"
          },
          {
            "text": "LV100-SysTick定时器简介",
            "collapsed": true,
            "link": "/sdoc/peripheral/timer/126b08f7176d34627620ad1b.md"
          },
          {
            "text": "LV105-自定义延时函数",
            "collapsed": true,
            "link": "/sdoc/peripheral/timer/126b08f71bb31f61f9e3c819.md"
          }
        ]
      },
      {
        "text": "20-看门狗",
        "collapsed": true,
        "items": [
          {
            "text": "LV001-看门狗简介",
            "collapsed": true,
            "link": "/sdoc/peripheral/watchdog/126b09043ae916195cb39541.md"
          },
          {
            "text": "LV010-看门狗使用实例",
            "collapsed": true,
            "link": "/sdoc/peripheral/watchdog/126b09043c29000296442c6e.md"
          }
        ]
      },
      {
        "text": "25-FSMC",
        "collapsed": true,
        "items": [
          {
            "text": "01-FSMC基础",
            "collapsed": true,
            "items": [
              {
                "text": "LV001-FSMC简介",
                "collapsed": true,
                "link": "/sdoc/peripheral/fsmc/fsmc-basic/126b092492553b23e8704ba7.md"
              },
              {
                "text": "LV005-存储器映射与控制器",
                "collapsed": true,
                "link": "/sdoc/peripheral/fsmc/fsmc-basic/126b092499b000721416c9a0.md"
              },
              {
                "text": "LV010-相关HAL库函数",
                "collapsed": true,
                "link": "/sdoc/peripheral/fsmc/fsmc-basic/126b0924b19533081adda526.md"
              }
            ]
          },
          {
            "text": "05-外部SRAM",
            "collapsed": true,
            "items": [
              {
                "text": "LV001-概述",
                "collapsed": true,
                "link": "/sdoc/peripheral/fsmc/sram/126b09248e5b007fcadf7acc.md"
              },
              {
                "text": "LV002-XM8A51216简介",
                "collapsed": true,
                "link": "/sdoc/peripheral/fsmc/sram/126b09248ce51200a79d393f.md"
              },
              {
                "text": "LV005-IS62WV51216简介",
                "collapsed": true,
                "link": "/sdoc/peripheral/fsmc/sram/126b09248db61d861c837fd7.md"
              },
              {
                "text": "LV015-外部SRAM读写实例",
                "collapsed": true,
                "link": "/sdoc/peripheral/fsmc/sram/126b0924b2d20263b97733d0.md"
              }
            ]
          }
        ]
      },
      {
        "text": "30-I2C",
        "collapsed": true,
        "items": [
          {
            "text": "LV001-STM32的I2C",
            "collapsed": true,
            "link": "/sdoc/peripheral/i2c/126b09344c01323883ac1ab4.md"
          },
          {
            "text": "LV010-AT24C02简介",
            "collapsed": true,
            "link": "/sdoc/peripheral/i2c/126b09344d8f021f00cacd6c.md"
          },
          {
            "text": "LV015-AT24C02使用实例",
            "collapsed": true,
            "link": "/sdoc/peripheral/i2c/126b09344f37186302faabd7.md"
          }
        ]
      },
      {
        "text": "35-SPI",
        "collapsed": true,
        "items": [
          {
            "text": "LV001-STM32的SPI",
            "collapsed": true,
            "link": "/sdoc/peripheral/spi/126b0950f4ae14889c830ae3.md"
          },
          {
            "text": "LV010-W25QXXX简介",
            "collapsed": true,
            "link": "/sdoc/peripheral/spi/126b0950f64a0b5a3fbcba93.md"
          },
          {
            "text": "LV015-SPI读写W25QXXX实例",
            "collapsed": true,
            "link": "/sdoc/peripheral/spi/126b0950f849211ff053e7ff.md"
          }
        ]
      },
      {
        "text": "40-DMA",
        "collapsed": true,
        "items": [
          {
            "text": "LV001-DMA简介",
            "collapsed": true,
            "link": "/sdoc/peripheral/dma/126b0950fbc52669af52caac.md"
          },
          {
            "text": "LV010-DMA使用实例",
            "collapsed": true,
            "link": "/sdoc/peripheral/dma/126b0950fc960317c7b64826.md"
          }
        ]
      },
      {
        "text": "50-SDIO",
        "collapsed": true,
        "items": [
          {
            "text": "LV001-SD卡简介",
            "collapsed": true,
            "link": "/sdoc/peripheral/sdio/126b0950fe110bc81c4d2fd3.md"
          },
          {
            "text": "LV015-SD卡的操作",
            "collapsed": true,
            "link": "/sdoc/peripheral/sdio/126b0950ff013d660d235356.md"
          },
          {
            "text": "LV020-STM32的SDIO",
            "collapsed": true,
            "link": "/sdoc/peripheral/sdio/126b0951000d2a75b964fa55.md"
          },
          {
            "text": "LV025-读写SD卡实例",
            "collapsed": true,
            "link": "/sdoc/peripheral/sdio/126b095100d21af60c8ed17e.md"
          }
        ]
      },
      {
        "text": "55-RTC时钟",
        "collapsed": true,
        "items": [
          {
            "text": "LV001-RTC简介",
            "collapsed": true,
            "link": "/sdoc/peripheral/rtc/126b09511eac35920a3f191c.md"
          }
        ]
      },
      {
        "text": "60-USB",
        "collapsed": true,
        "items": [
          {
            "text": "LV001-USB简介",
            "collapsed": true,
            "link": "/sdoc/peripheral/usb/126b095167b12a8376012928.md"
          },
          {
            "text": "LV010-USB读卡器实例",
            "collapsed": true,
            "link": "/sdoc/peripheral/usb/126b095168b91d9fad5c2a07.md"
          }
        ]
      }
    ],
    "/sdoc/advanced-chapter/": [
      {
        "text": "01-文件系统",
        "collapsed": true,
        "items": [
          {
            "text": "LV001-文件系统简介",
            "collapsed": true,
            "link": "/sdoc/advanced-chapter/file-system/126b0951040033e78ccbca10.md"
          },
          {
            "text": "LV010-FATFS简介",
            "collapsed": true,
            "link": "/sdoc/advanced-chapter/file-system/126b095105912fc87e8eb3f7.md"
          },
          {
            "text": "LV015-基于SPIFLASH移植FATFS",
            "collapsed": true,
            "link": "/sdoc/advanced-chapter/file-system/126b0951078a03391bda267a.md"
          },
          {
            "text": "LV015-基于SD卡移植FATFS",
            "collapsed": true,
            "link": "/sdoc/advanced-chapter/file-system/126b09511b702501a47f120c.md"
          },
          {
            "text": "LV025-FATFS中自定义的一些函数",
            "collapsed": true,
            "link": "/sdoc/advanced-chapter/file-system/126b09511d060b54b7d725e9.md"
          }
        ]
      },
      {
        "text": "02-ESP8266",
        "collapsed": true,
        "items": [
          {
            "text": "LV001-ESP8266模块简介",
            "collapsed": true,
            "link": "/sdoc/advanced-chapter/esp8266/126b0951502d346ca9aa7929.md"
          },
          {
            "text": "LV010-AT指令",
            "collapsed": true,
            "link": "/sdoc/advanced-chapter/esp8266/126b095151472d621a6605a9.md"
          },
          {
            "text": "LV015-ESP8266固件烧录",
            "collapsed": true,
            "link": "/sdoc/advanced-chapter/esp8266/126b0951520814de18399844.md"
          },
          {
            "text": "LV020-ATK-ESP8266使用实例",
            "collapsed": true,
            "link": "/sdoc/advanced-chapter/esp8266/126b095152fb04ead8380cb5.md"
          }
        ]
      },
      {
        "text": "03-OV7725",
        "collapsed": true,
        "items": [
          {
            "text": "LV001-ATK-MC6625F模块简介",
            "collapsed": true,
            "link": "/sdoc/advanced-chapter/ov7725/126b09516b08191a7bd0fd02.md"
          },
          {
            "text": "LV010-SCCB协议简介",
            "collapsed": true,
            "link": "/sdoc/advanced-chapter/ov7725/126b09516b6c2fed98855250.md"
          },
          {
            "text": "LV020-OV7725简介",
            "collapsed": true,
            "link": "/sdoc/advanced-chapter/ov7725/126b09516bd03c413cd356e8.md"
          }
        ]
      },
      {
        "text": "04-显示屏",
        "collapsed": true,
        "items": [
          {
            "text": "01-OLED",
            "collapsed": true,
            "items": [
              {
                "text": "LV001-OLED简介",
                "collapsed": true,
                "link": "/sdoc/advanced-chapter/display/oled/126b09516d6c2a948085516b.md"
              },
              {
                "text": "LV010-8080时序驱动OLED",
                "collapsed": true,
                "link": "/sdoc/advanced-chapter/display/oled/126b09517279099247b327e5.md"
              }
            ]
          },
          {
            "text": "02-LCD",
            "collapsed": true,
            "items": [
              {
                "text": "LV001-LCD简介",
                "collapsed": true,
                "link": "/sdoc/advanced-chapter/display/lcd/126b0951740b3b3a3f69973e.md"
              },
              {
                "text": "LV010-液晶控制原理",
                "collapsed": true,
                "link": "/sdoc/advanced-chapter/display/lcd/126b0951760b03320ea5c5be.md"
              },
              {
                "text": "LV015-ATK-MD0280模块",
                "collapsed": true,
                "link": "/sdoc/advanced-chapter/display/lcd/126b095237661ce983ad47b1.md"
              },
              {
                "text": "LV016-IL9341简介",
                "collapsed": true,
                "link": "/sdoc/advanced-chapter/display/lcd/126b095238ef12080fa9e2fc.md"
              },
              {
                "text": "LV020-FSMC模拟8080时序",
                "collapsed": true,
                "link": "/sdoc/advanced-chapter/display/lcd/126b09523c371707f0bd772f.md"
              },
              {
                "text": "LV025-LCD显示实例",
                "collapsed": true,
                "link": "/sdoc/advanced-chapter/display/lcd/126b095253d9037570d31d42.md"
              },
              {
                "text": "LV030-字符编码基础",
                "collapsed": true,
                "link": "/sdoc/advanced-chapter/display/lcd/126b095255800a53f67e99cc.md"
              },
              {
                "text": "LV035-中英文的显示",
                "collapsed": true,
                "link": "/sdoc/advanced-chapter/display/lcd/126b0952576b3df0941e36ed.md"
              },
              {
                "text": "LV040-实现任意大小字模",
                "collapsed": true,
                "link": "/sdoc/advanced-chapter/display/lcd/126b09525e7116330989fbcc.md"
              }
            ]
          }
        ]
      },
      {
        "text": "90-FreeRTOS",
        "collapsed": true,
        "items": [
          {
            "text": "01-FreeRTOS简介",
            "collapsed": true,
            "items": [
              {
                "text": "LV001-FreeRTOS简介",
                "collapsed": true,
                "link": "/docs/126b096ee4d10f3bb564b607.md"
              }
            ]
          }
        ]
      }
    ],
    "/sdoc/communication/": [
      {
        "text": "01-I2C协议",
        "collapsed": true,
        "items": [
          {
            "text": "LV001-I2C简介",
            "collapsed": true,
            "link": "/sdoc/communication/i2c/126b09043f2d250b963bfb0d.md"
          },
          {
            "text": "LV020-AT24C02实例分析",
            "collapsed": true,
            "link": "/sdoc/communication/i2c/126b09043fca31869028172d.md"
          }
        ]
      },
      {
        "text": "10-串口",
        "collapsed": true,
        "items": [
          {
            "text": "LV001-串口通信简介",
            "collapsed": true,
            "link": "/sdoc/communication/serial-port/126b0904421d06db7b197798.md"
          },
          {
            "text": "LV020-RS232简介",
            "collapsed": true,
            "link": "/sdoc/communication/serial-port/126b0950f26b1afbd6db3885.md"
          },
          {
            "text": "LV030-RS485简介",
            "collapsed": true,
            "link": "/sdoc/communication/serial-port/126b0950f287303e7c68cbb5.md"
          }
        ]
      },
      {
        "text": "30-SPI",
        "collapsed": true,
        "items": [
          {
            "text": "LV001-SPI简介",
            "collapsed": true,
            "link": "/sdoc/communication/spi/126b0950dceb1d850b1e36d8.md"
          }
        ]
      },
      {
        "text": "40-CAN",
        "collapsed": true,
        "items": [
          {
            "text": "LV001-CAN通信简介",
            "collapsed": true,
            "link": "/sdoc/communication/can/126b0950f34624bdf8f7407f.md"
          }
        ]
      },
      {
        "text": "LV001-通信概述",
        "collapsed": true,
        "link": "/sdoc/communication/126b09043e1c12685fda3fb8.md"
      }
    ]
  }
}

Page Data

{
  "title": "Runtime API Examples",
  "description": "",
  "frontmatter": {
    "outline": "deep"
  },
  "headers": [],
  "relativePath": "Examples/api-examples.md",
  "filePath": "Examples/api-examples.md",
  "lastUpdated": 1758107786000
}

Page Frontmatter

{
  "outline": "deep"
}

More

Check out the documentation for the full list of runtime APIs.

Last updated: